我有一个MainViewController,当用户点击相应的按钮时,可以在其上显示FilterViewController和DetailViewController。 我使用相同的代码来呈现它们:
self.presentViewController(vc, animated: true, completion: nil)
我也使用相同的代码从导航栏按钮中删除它们:
self.dismissViewControllerAnimated(true, completion: nil)
当FilterViewController被解散时,一切都正常,但当DetailViewController被解除时,导航栏将从MainViewController中删除。
虽然当DetailViewController被解除时,我可以添加一段代码来向MainViewController添加新的导航栏,但我非常想知道可能导致这种异常行为的原因是什么?
我知道我提供的信息很少,无法帮助回答这个问题,但我不知道代码的哪些部分可能与此问题相关。
修改
这是MainViewController中唯一的viewDid方法
override func viewDidLoad() {
self.navigationController?.navigationBar.opaque = true
self.navigationController?.navigationBar.barTintColor = UIColor(red: 0.0745, green: 0.2667, blue: 0.4471, alpha: 1)
self.navigationItem.titleView = UIImageView(image: UIImage(named: "HeadLogo"))
super.viewDidLoad()
}
代码中没有警告,只有少数来自Storyboard元素的模糊位置。
我不明白为什么只解雇DetailViewController会从MainViewController中删除导航栏。除了子视图内容,它们基本相同。
修改
从DetailViewController返回时,导航元素不再位于子视图数组
中