我在SO上寻找答案并找不到它。程序化确实不是我的事,但我打算在7月初学习它。
我正在使用故事板。我有一个NavVC,它有一个RedVC作为root,RedVC推动BlueVC。它们都是由segues连接起来的。我有一个在故事板中的PurpleVC,但它没有连接任何东西
NavVC->RedVC->BlueVC //segues
PurpleVC //no segue
在我的BlueVC中,我有一个collectionView和I当我按下一个单元格时,我想要模拟地呈现我正在成功使用的PurpleVC:
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为navigationBar
时,我没有获得rightBarButtonItem
或presented modally
。我尝试将它添加到collectionView的navigationItem
中的PurpleVC didSelectItemAt
但没有出现,所以我尝试将它添加到PurpleVC的viewDidLoad
但是没有出现在那里。
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)
}
}
当PurpleVC以模态呈现时,我的navigationBar
和rightBarButtonItem
怎么没有显示?
答案 0 :(得分:0)
当你展示一个控制器时,它不会带有导航栏&项目。 转到您的purpleVC故事板文件并手动添加导航栏和项目。 希望它会有所帮助!