我在 SO 上寻找答案,但找不到。程序化真的不是我的事,但我打算在 7 月初左右学习它。
我正在使用故事板。我有一个 NavVC,它有一个 RedVC 作为 root,RedVC 推送一个 BlueVC。它们都通过segues连接起来。我在情节提要中有一个 PurpleVC,但它没有连接到任何东西
NavVC->RedVC->BlueVC //segues
PurpleVC //no segue
在我的 BlueVC 中,我有一个 collectionView,当我按下一个单元格时,我想以模态方式呈现我正在成功使用的 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)
}
}
问题是我没有得到,navigationBar
也没有得到rightBarButtonItem
紫色VC 的时间presented modally
。我尝试将其添加到navigationItem
collectionView 中的 PurpleVC 中,didSelectItemAt
但没有显示任何内容,因此我尝试将其添加到 PurpleVC 中,viewDidLoad
但那里也没有显示任何内容。
紫色VC:
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