iOS

[ iOS ] ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ทฐ ๋„ฃ๊ธฐ - ํƒญ ๋ฐ” ์ปจํŠธ๋กค๋Ÿฌ

Forest Yun 2021. 8. 26. 16:39
728x90

๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.

 

๋ฌธ์ œ

ํƒญ ๋ฐ” ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์ด์šฉํ•ด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ทฐ๋ฅผ ๋„ฃ์–ด๋ผ. ๋ทฐ์˜ ํŠน์ง•์— ๋งž๊ฒŒ ํƒญ ๋ฐ” ์•„์ด์ฝ˜๋„ ์ˆ˜์ •ํ•˜๋ผ. ๋”ํ•˜์—ฌ ์ด๋ฏธ์ง€๋ทฐ์— ์ด๋ฏธ์ง€๋ฅผ ํ• ๋‹นํ•˜๊ณ , ๋ฒ„ํŠผ ํด๋ฆญ์‹œ ํ•ด๋‹น ๋ทฐ๋กœ ์ „ํ™˜๋˜๋„๋ก ๊ตฌํ˜„ํ•˜๋ผ.

 

 

๊ตฌํ˜„ ์ˆœ์„œ

  1. ๋ ˆ์ด์•„์›ƒ ๊ตฌ์„ฑ
  2. ํƒญ ๋ฐ” ์ปจํŠธ๋กค๋Ÿฌ ์Šคํ† ๋ฆฌ ๋ณด๋“œ์— ์ถ”๊ฐ€
  3. ํƒญ ๋ฐ”์— ๋ทฐ ์ถ”๊ฐ€
  4. ํƒญ ๋ฐ” ์•„์ด์ฝ˜ ์ˆ˜์ •
  5. ๋ฒ„ํŠผ์œผ๋กœ ๋ทฐ ์ „ํ™˜ ๊ตฌํ˜„

 

 

์ตœ์ข… ๊ฒฐ๊ณผ

 

 

 

 

 

 

 

 

 

 

 


 

1. ๋ ˆ์ด์•„์›ƒ ๊ตฌ์„ฑ (์ตœ์ข…์ ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋ ˆ์ด์•„์›ƒ)

 

 

ImageView์— ์‚ฌ์ง„ ํ• ๋‹นํ•˜๊ธฐ

ImageView๋ฅผ ํด๋ฆญํ•œ ํ›„ ์˜ค๋ฅธ์ชฝ ์ธ์ŠคํŽ™ํ„ฐ ์˜์—ญ์—์„œ [Attributes inspector]์˜ image๋ฅผ ํ†ตํ•ด ์›ํ•˜๋Š” ์ด๋ฏธ์ง€๋ฅผ  ์ฝ”๋“œ ์ˆ˜์ •์—†์ด ์ด๋ฏธ์ง€ ๋ทฐ์— ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 

 

 

 

 

 

 

 

 


2. ํƒญ ๋ฐ” ์ปจํŠธ๋กค๋Ÿฌ ์Šคํ† ๋ฆฌ ๋ณด๋“œ์— ์ถ”๊ฐ€

 

ํƒญ ๋ฐ” ์ปจํŠธ๋กค๋Ÿฌ Tap Bar Controller

์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ทฐ์™€ ๋”๋ถˆ์–ด ๋ทฐ๋ฅผ ์„ ํƒํ•ด ์ด๋™ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์ปจํŠธ๋กค๋Ÿฌ

@interface UITabBarController : UIViewController
A container view controller that manages a multiselection interface, where the selection determines which child view controller to display.

A container view controller that manages a multiselection interface, where the selection determines which child view controller to display.

๋‹ค์ค‘ ์„ ํƒ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ์ด๋‹ค. ์„ ํƒ์— ๋”ฐ๋ผ ์–ด๋–ค ์ž์‹ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๋ณด์—ฌ์ค„์ง€ ๊ฒฐ์ •ํ•œ๋‹ค.

 

 

@interface UITabBar : UIView
A control that displays one or more buttons in a tab bar for selecting between different subtasks, views, or modes in an app.

 

์•ฑ์˜ ๋‹ค๋ฅธ ํ•˜์œ„ ์ž‘์—…, ๋ทฐ ๋˜๋Š” ๋ชจ๋“œ ์ค‘ ์„ ํƒํ•˜๊ธฐ ์œ„ํ•ด ํƒญ ๋ฐ”์— ํ•œ ๊ฐœ ์ด์ƒ์˜ ๋ฒ„ํŠผ์„ ๋ณด์—ฌ์ฃผ๋Š” ์ปจํŠธ๋กค์ด๋‹ค.

 

 

 

 

์Šคํ† ๋ฆฌ๋ณด๋“œ์˜ ์•„์ดํฐ ํ™”๋ฉด ์ „์ฒด๋ฅผ ๋“œ๋ž˜๊ทธํ•œ ํ›„ ๋ฉ”๋‰ด์—์„œ [ Editor/ Embed in/ Tab Bar Controller ]๋ฅผ ์„ ํƒํ•œ๋‹ค.

 

 

 

 

 

 

 

 

 

 


 

3. ํƒญ ๋ฐ”์— ๋ทฐ ์ถ”๊ฐ€

ViewController ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ทฐ๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๊ธฐ์กด์— ์ƒ์„ฑํ–ˆ๋˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ๋ทฐ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

ViewControllew ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ทฐ๋ฅผ ์ƒ์„ฑํ•  ๊ฒฝ์šฐ, UIVoewController ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›๋Š” class๋ฅผ ํ•˜๋‚˜ ์ƒ์„ฑํ•˜์—ฌ ViewController์˜ Custom Class๋กœ ์ง€์ •ํ•œ๋‹ค.

๊ธฐ์กด ํ”„๋กœ์ ํŠธ์—์„œ ๋ทฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒฝ์šฐ, ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์˜ 'ViewController.swift' ํŒŒ์ผ์„ ์ด๋ฆ„ ๋ณ€๊ฒฝ ํ›„ ๋ณต์‚ฌ ๋ถ™์—ฌ๋„ฃ๊ธฐ ํ•œ๋‹ค. ๊ทธ ํ›„ ํ•ด๋‹น ํ”„๋กœ์ ํŠธ Main.storyboard๋ฅผ ์—ด์–ด ViewController๊ฐ€ ๋ชจ๋“  ํฌํ•จ๋˜๋„๋ก ๋“œ๋ž˜๊ทธํ•œ ํ›„ ๋ณต์‚ฌ ๋ถ™์—ฌ๋„ฃ๊ธฐ ํ•œ๋‹ค. ์ด๋•Œ ์•„๊นŒ 'ViewController.swift' ํŒŒ์ผ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ณต์‚ฌํ•ด์˜จ ๋ทฐ์˜ Custom Class๋กœ ๋ณ€๊ฒฝํ•œ ์ด๋ฆ„๋Œ€๋กœ ์„ค์ •ํ•œ๋‹ค. ๋˜ํ•œ ํ•ด๋‹น ํŒŒ์ผ ์† ํด๋ž˜์Šค์˜ ์ด๋ฆ„๋„ ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ ๋ณ€๊ฒฝํ•ด์•ผ ํ•œ๋‹ค.

 

์‚ฌ์šฉํ•  ๋ทฐ๋ฅผ ๋ชจ๋‘ ์ƒ์„ฑํ–ˆ์œผ๋ฉด, 'Tab Bar Controller'๋ผ๊ณ  ์ ํ˜€์žˆ๋Š” ๋ทฐ์— ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ ํ›„ ๋ทฐ ํ•˜๋‚˜์”ฉ ์—ฐ๊ฒฐํ•œ๋‹ค.

 

 

 

 

 

 

 

 

 

 

 

 


4. ํƒญ ๋ฐ” ์•„์ด์ฝ˜ ์ˆ˜์ •

ํƒญ ๋ฐ”์— ์žˆ๋Š” ์•„์ด์ฝ˜์„ ํด๋ฆญํ•œ ๋’ค ์˜ค๋ฅธ์ชฝ ์ธ์ŠคํŽ™ํ„ฐ ์˜์—ญ์˜ [Attributes inspector]์—์„œ System Item์„ Custom์—์„œ ๋ทฐ์˜ ๋ชฉ์ ์— ๋งž๊ฒŒ ๋ณ€๊ฒฝํ•˜๋ผ.

 

+ ์˜ค๋ฅธ์ชฝ ์ธ์ŠคํŽ™ํ„ฐ ์˜์—ญ์˜ [Attributes inspector]์—์„œ Bar Item์„ ํ†ตํ•ด ์ž„์˜๋กœ ์•„์ด์ฝ˜๊ณผ ํƒ€์ดํ‹€์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

 

 

 

 

 

 

 

 

 


5. ๋ฒ„ํŠผ์œผ๋กœ ๋ทฐ ์ „ํ™˜ ๊ตฌํ˜„

๋ฒ„ํŠผ์„ ๋ ˆ์ด์•„์›ƒ์— ๋ฐฐ์น˜ํ•œ ํ›„ ๋ฒ„ํŠผ์„ ์œ„ํ•œ ์•ก์…˜ํ•จ์ˆ˜๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

๊ทธ ํ›„ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ์›ํ•˜๋Š” ๋ทฐ๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๋„๋ก tabBarcontroller์˜ selectedIndex ํ”„๋กœํผํ‹ฐ์— ํ™”๋ฉด ๋ฒˆํ˜ธ๋ฅผ ํ• ๋‹นํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ํ™”๋ฉด ๋ฒˆํ˜ธ๋Š” ํƒญ ๋ฐ” ์•„์ดํ…œ์˜ ์ˆœ์„œ์ด๋‹ค. ๋ฐฉํ–ฅ์€ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ, 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.

selectedIndex ํ”„๋กœํผํ‹ฐ์— ์›ํ•˜๋Š” ๋ทฐ์˜ ๋ฒˆํ˜ธ๋ฅผ ํ• ๋‹นํ•  ๊ฒฝ์šฐ ํ•ด๋‹น ๋ทฐ๋กœ ๋ทฐ ์ „ํ™˜์ด ์ผ์–ด๋‚œ๋‹ค.

 

var selectedIndex: Int { get set }
The index of the view controller associated with the currently selected tab item.
This property nominally represents an index into the array of the viewControllers property. 

ํ˜„์žฌ ์„ ํƒ๋œ ํƒญ ์•„์ดํ…œ๊ณผ ์—ฐ๊ด€๋œ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ์˜ ๋ฒˆํ˜ธ

์ด ํ”„๋กœํผํ‹ฐ๋Š” ๋ช…๋ชฉ์ƒ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ ํ”„๋กœํผํ‹ฐ์˜ ๋ฐฐ์—ด ์† ๋ฒˆํ˜ธ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

 

import UIKit

class TabViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
    }
    
    @IBAction func btnMoveImageView(_ sender: UIButton) {
        //์ด ์ˆซ์ž๋Š” ํƒญ ๋ฐ” ์•„์ดํ…œ ์ˆœ์„œ์ด๋‹ค. 0~
        tabBarController?.selectedIndex = 1 //1-์ด๋ฏธ์ง€ ๋ทฐ ํƒ์œผ๋กœ ์ด๋™
    }
    
    @IBAction func btnMoveDatePickerView(_ sender: UIButton) {
        //์ด ์ˆซ์ž๋Š” ํƒญ ๋ฐ” ์•„์ดํ…œ ์ˆœ์„œ์ด๋‹ค. 0~
        tabBarController?.selectedIndex = 2 //2-๋ฐ์ดํŠธ ํ”ผ์ปค ๋ทฐ ํƒญ์œผ๋กœ ์ด๋™
    }
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

๊ณต๋ถ€ ์ž๋ฃŒ

Do It! ์Šค์œ„ํ”„ํŠธ๋กœ ์•„์ดํฐ ์•ฑ ๋งŒ๋“ค๊ธฐ ๊ฐœ์ • 5ํŒ
SWIFT ๋ฌธ์„œ

 

728x90