iOS | UINavigationBar 와 Navigation cotroller는 다르다?

일어나 개발해야지·2023년 9월 13일

Intro

UINavigationBar를 사용해서 NavBar를 셋팅했는데,
이건 껍데이만 가져온거라는 코멘트가 있었다.

    //MARK: property
    var navigationBar : UINavigationBar = {
        let naviBar = UINavigationBar()
        let navigationItem = UINavigationItem()
        navigationItem.title = "UINavigationBar"
        naviBar.items = [navigationItem]
        naviBar.barTintColor = UIColor.quaternarySystemFill
        return naviBar
    }()

     
       override func viewDidLoad() {
        super.viewDidLoad()
        
     view.addSubview(navigationBar)
        navigationBar.translatesAutoresizingMaskIntoConstraints = false
        NSLayoutConstraint.activate([
            navigationBar.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor),
            navigationBar.leftAnchor.constraint(equalTo: view.leftAnchor, constant: 0),
            navigationBar.rightAnchor.constraint(equalTo: view.rightAnchor, constant: 0),
            navigationBar.heightAnchor.constraint(equalToConstant: 60)

        ])
        }

Find Keyword

Navigation cotroller라는 키워드로 다시한번 찾아봤다.

storyboard를 이용한 첫세팅은 여기 블로그 글을 참고 했다.

셋팅을 마치고 나니, viewDidLoad에 title을 추가해준것 만으로도
Navigation cotroller가 배치되었다...!

    override func viewDidLoad() {
        super.viewDidLoad()
      
        title = "Navigation Controller"


    }

UIBarButtonItem property의 선언과 viewDidLoad에 배치를 해주면 아래와같은 좌우 버튼도 만들 수 있다.

    let leftButton : UIBarButtonItem = {
        let button = UIBarButtonItem(title: "취소", style: .plain, target: self, action: nil)
        return button
    }()
    
    let rightButton : UIBarButtonItem = {
        let button = UIBarButtonItem(title: "완료", style: .plain, target: self, action: nil)
        return button
    }()
    
        override func viewDidLoad() {
        super.viewDidLoad()
        title = "Navigation Controller"
        self.navigationItem.leftBarButtonItem = self.leftButton
        self.navigationItem.rightBarButtonItem = self.rightButton
    }
    

0개의 댓글