Swift iOS -NavigationBar 和 RightBarButtonItem 未显示
Swift iOS -NavigationBar and RightBarButtonItem not Showing
我在 SO 上寻找这个问题的答案,但找不到。程序化真的不是我的事,但我打算在 7 月初左右学习它。
我正在使用故事板。我有一个以 RedVC 为根的 NavVC,RedVC 推送一个 BlueVC。它们都是由 segues 连接的。我在 Storyboard 中有一个 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)
}
}
问题是当 purpleVC 为 presented modally
时,我没有得到 navigationBar
也没有 rightBarButtonItem
。我尝试将它添加到 collectionView 的 didSelectItemAt
中的 PurpleVC 的 navigationItem
,但没有显示任何内容,所以我尝试将它添加到 PurpleVC 的 viewDidLoad
中,但也没有显示任何内容。
紫色风投:
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
没有显示?
当您展示控制器时,它不会带有导航栏和项目。
转到您的 purpleVC 故事板文件并手动添加导航栏和项目。
希望对你有帮助!
我在 SO 上寻找这个问题的答案,但找不到。程序化真的不是我的事,但我打算在 7 月初左右学习它。
我正在使用故事板。我有一个以 RedVC 为根的 NavVC,RedVC 推送一个 BlueVC。它们都是由 segues 连接的。我在 Storyboard 中有一个 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)
}
}
问题是当 purpleVC 为 presented modally
时,我没有得到 navigationBar
也没有 rightBarButtonItem
。我尝试将它添加到 collectionView 的 didSelectItemAt
中的 PurpleVC 的 navigationItem
,但没有显示任何内容,所以我尝试将它添加到 PurpleVC 的 viewDidLoad
中,但也没有显示任何内容。
紫色风投:
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
没有显示?
当您展示控制器时,它不会带有导航栏和项目。 转到您的 purpleVC 故事板文件并手动添加导航栏和项目。 希望对你有帮助!