【问题标题】:Unable to Add Bar Button Item Programatically无法以编程方式添加条形按钮项
【发布时间】:2017-04-03 17:49:01
【问题描述】:
func myPlaceViewMoreWasPressed() {
    print("myPlaceViewMore was pressed")

    let vc = MyPlacesViewController(nil)
    let nav = UINavigationController(rootViewController: vc)
    let dismissButton = UIBarButtonItem.init(title: "Dismiss", style: .plain, target: self, action: #selector(dismissButtonWasPressed))
    nav.navigationItem.leftBarButtonItem = dismissButton

    self.present(nav, animated: true, completion: nil)
}

应该很简单...实例化一个 ViewController,将其包含在导航控制器中,初始化一个 UIBarButtonItem 并将其设置为导航的 leftBarButtonItem。我也试过这样:

func myPlaceViewMoreWasPressed() {
    print("myPlaceViewMore was pressed")

    let vc = MyPlacesViewController(nil)
    let nav = UINavigationController(rootViewController: vc)
    let dismissButton = UIBarButtonItem.init(title: "Dismiss", style: .plain, target: self, action: #selector(dismissButtonWasPressed))
    nav.navigationItem.setLeftBarButton(dismissButton, animated: true)

    self.present(nav, animated: true, completion: nil)
}

但是按钮不会出现。

【问题讨论】:

    标签: ios swift cocoa-touch uinavigationbar


    【解决方案1】:

    您需要更新视图控制器的navigationItem,而不是导航控制器。在将视图控制器设置为根控制器之前,我会这样做。

    func myPlaceViewMoreWasPressed() {
        print("myPlaceViewMore was pressed")
    
        let vc = MyPlacesViewController(nil)
        let dismissButton = UIBarButtonItem.init(title: "Dismiss", style: .plain, target: self, action: #selector(dismissButtonWasPressed))
        vc.navigationItem.leftBarButtonItem = dismissButton
    
        let nav = UINavigationController(rootViewController: vc)
    
        self.present(nav, animated: true, completion: nil)
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-23
      相关资源
      最近更新 更多