0

私はこれを見て、これに対する答えは見つけられませんでした。プログラマティックは本当に私のものではありませんが、私は7月初めにそれを学ぶつもりです。Swift iOS -NavigationBarとRightBarButtonItemが表示されない

私はストーリーボードを使用しています。私はルートとしてRedVCを持っているNavVCを持っていて、RedVCはBlueVCを押しています。彼らはすべてセグで結ばれています。私は、ストーリーボードであるPurpleVCを持っていますが、それは私が私が正常にやっている私はモーダルPurpleVCを提示したいセルを押したときに、私はcollectionViewと私を持っている私のBlueVCで何

NavVC->RedVC->BlueVC //segues 

       PurpleVC //no segue 

に接続されていません使用:

BlueVC:ViewController, CollectionViewControllerDele..., CollectionViewControllerData...{ 

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { 

     let purpleVC = storyboard?.instantiateViewController(withIdentifier: "PurpleVC") as! PurpleVC 
     purpleVC.data = data[indexPath.row] 

     purpleVC.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(dismissVC)) 

     navigationController?.present(purpleVC, animated: true, completion: nil) 
    } 

@objc fileprivate func dismissVC(){ 
    dismiss(animated: true, completion: nil) 
    } 
} 

を問題はpurpleVCがpresented modallyあるとき、私はnavigationBarrightBarButtonItemを得ることはありませんです。私はそれをPurpleVCのnavigationItemにcollectionviewのdidSelectItemAtで追加しようとしましたが、何も表示されなかったので、PurpleVCのviewDidLoadに追加しようとしましたが、何も表示されませんでした。

PurpleVC:PurpleVCがモーダル提示されたとき

PurpleVC:UIViewController{ 

var data:SomeClass? 

override func viewDidLoad() { 
     super.viewDidLoad() 

     navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(dismissVC)) 
    } 

@objc fileprivate func dismissVC(){ 
    dismiss(animated: true, completion: nil) 
    } 
} 

がどのように私のnavigationBarrightBarButtonItem来る表示されていませんか?

答えて

0

コントローラーを提示しているときは、ナビゲーションバー&のアイテムが付属していません。 purpleVCストーリーボードファイルに移動して、ナビゲーションバーとアイテムを手動で追加します。 希望しますように!

+0

助けてくれてありがとう!私はnav = UINavigationController(rootViewController:purpleVC)を使いました。それはより簡単だった –

関連する問題