dismissViewControllerAnimated有时会删除导航栏

时间:2015-02-19 15:28:34

标签: ios swift viewcontroller navigationbar

我有一个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返回时,导航元素不再位于子视图数组

0 个答案:

没有答案