Swift iOS -NavigationBar и RightBarButtonItem не отображаются
Я посмотрел на SO для ответа на это и не смог найти его. Программирование на самом деле не мое, но я собираюсь изучить его примерно в начале июля.
Я использую Раскадровки. У меня есть NavVC, у которого есть RedVC как корень, и 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
, Я пытался добавить его в PurpleVC navigationItem
в collectionView 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)
}
}
Как же мой navigationBar
а также rightBarButtonItem
не отображается, когда PurpleVC представлен модально?
1 ответ
Когда вы представляете контроллер, он не будет сопровождаться панелью навигации и элементами. Перейдите к файлу раскадровки purpleVC и вручную добавьте панель навигации и элементы. Надеюсь, это поможет!