私はこれを見て、これに対する答えは見つけられませんでした。プログラマティックは本当に私のものではありませんが、私は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
あるとき、私はnavigationBar
もrightBarButtonItem
を得ることはありませんです。私はそれを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)
}
}
がどのように私のnavigationBar
とrightBarButtonItem
来る表示されていませんか?
助けてくれてありがとう!私はnav = UINavigationController(rootViewController:purpleVC)を使いました。それはより簡単だった –