我看了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)。這很容易 –