2017-04-03 11 views
0

ViewControllerをインスタンス化し、ナビゲーションコントローラに格納し、UIBarButtonItemを初期化し、navの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) 
} 

しかし、ボタンは表示されません。

答えて

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) 
} 
関連する問題