我看了SO的答案,并找不到它。程序设计真的不是我的事情,但我打算在7月初左右学习它。Swift iOS - 导航栏和RightBarButtonItem不显示
我正在使用故事板。我有一个以root用户身份拥有RedVC的NavVC,而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
当purpleVC是presented modally
。我尝试将它添加到CollectionView的didSelectItemAt
中的PurpleVC的navigationItem
中,但没有显示出来,因此我尝试将它添加到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)
}
}
为什么我navigationBar
和rightBarButtonItem
当PurpleVC有模式呈现不显示?
感谢您的帮助!我用nav = UINavigationController(rootViewController:purpleVC)。这很容易 –