Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios dismissViewControllerAnimated有时会删除导航栏_Ios_Swift_Viewcontroller_Navigationbar - Fatal编程技术网

Ios dismissViewControllerAnimated有时会删除导航栏

Ios dismissViewControllerAnimated有时会删除导航栏,ios,swift,viewcontroller,navigationbar,Ios,Swift,Viewcontroller,Navigationbar,我有一个MainViewController,当用户点击相应的按钮时,可以在上面显示FilterViewController和DetailViewController。 我使用相同的代码来呈现它们: self.presentViewController(vc, animated: true, completion: nil) 我还使用相同的代码从导航栏按钮中删除它们: self.dismissViewControllerAnimated(true, completion: nil) 当Fil

我有一个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()
}
代码中没有警告,只有少数警告来自情节提要元素的模糊位置

我不明白为什么取消仅DetailViewController会从MainViewController中删除导航栏。除子视图内容外,它们基本相同

编辑:


从DetailViewController返回时,导航元素不再位于子视图数组中

mainviewcontroller viewdidmethods会很有用,任何警告也会有用,向他们展示这是正常的,你总是必须关闭一个不包含导航栏的VC,然后转到你想要的VC。你能告诉我你是如何在MainViewController上添加导航栏的吗。是UINavigationController中的MainViewController。如果它不在UINavigationController内。我建议您将UINavigationController rootViewController链接到MainViewController@Shashi3456643我没有UINavigationController,因为所有导航项都是自定义的,并且视图控制器之间没有实际的导航(除了这些显示的视图控制器)可能是您的导航栏被隐藏,或其坐标为负数或超出范围。您是否可以枚举superview的所有子视图,并在NSLog上打印所有子视图,然后查看它是否在superview中。