NavigationBar에 Item이 표시되지 않을 때 해결한 방법

5826 단어 Swift

이번 내용


  • 이전에, 만났던 표시 미스에 대한 내용입니다.
  • NavigationBar에 Item이 표시되지 않을 때 해결 한 방법

  • Main.storyboard



    이런 느낌의 앱을 만들 때의 사건입니다.


    표시되지 않을 때의 상황


  • ViewController의 override func viewWillAppear(_ animated: Bool){} 안에 아래의 코드를 쓰고 있었습니다.

  • ViewController
       self.navigationItem.rightBarButtonItems = [UIBarButtonItem(barButtonSystemItem: .search, target: self, action: #selector(showSearchAlert)),
                                                  UIBarButtonItem(title: "Today", style: .done, target: self, action: #selector(showTodayList))]
    
    
  • ViewController의 override func viewWillAppear(_ animated: Bool){} 외부에서 아래 코드를 작성했습니다.

  • ViewController
        @objc func showSearchAlert(){
    
           //押された時の処理
    
        }
    
        @objc func showTodayList(){
    
           //押された時の処理
    
        }
    

    표시되도록 되었을 때의 내용


  • TabBarController를 사용하고 있으므로, CocoaTouchClassTabBarController 를 작성합니다.
  • Main.storyboard의 TabBarController CustomClass 에 CocoaTouchClass로 만든 TabBarController 클래스를 설정합니다.
  • 작성한 TabBarController 클래스의 override func viewWillAppear(_ animated: Bool){} 내에 NavigationBar에 Item을 추가하는 코드를 써 넣습니다.

  • ViewController
       import UIKit
    
    class TabBarController: UITabBarController {
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
    
        }
    
        override func viewWillAppear(_ animated: Bool) {
            super.viewWillAppear(animated)
    
            self.navigationItem.rightBarButtonItems = [UIBarButtonItem(barButtonSystemItem: .search, target: self, action: #selector(showSearchAlert)),
                                                       UIBarButtonItem(title: "Today", style: .done, target: self, action: #selector(showTodayList))]
    
        }
    
        @objc func showSearchAlert(){
    
           //押された時の処理
    
        }
    
        @objc func showTodayList(){
    
           //押された時の処理
    
        }
    
    }
    



    그 밖에도 표시되지 않는 원인은 있다고 생각하므로, 대응력을 연마하고 싶네요.
    그렇기 때문에 많은 코드를 쓰고 싶다 !!!
    지적, 질문 등 있으면, 코멘트까지 부탁드립니다.

    좋은 웹페이지 즐겨찾기