我正在使用故事板中的直接导航segue或从代码中调用segue来打开一个navigationController,但仍然在故事板上创建。
示例:
self.performSegue(withIdentifier: "addNew", sender: nil)
然后使用模态转换打开一个navigationController。 NC然后有一些视图控制器,它们上都有关闭按钮,当我点击它时,它关闭NC使用:
self.navigationController?.dismiss(animated: true, completion: nil)
但是当我在TabbarController上的不同ViewControllers之间切换或者用推送视图打开其他视图时,我得到:
Unbalanced calls to begin/end appearance transitions for
并且打开的视图上的viewWillAppear也没有被调用。所以,任何人都可以告诉我,我是否正确关闭NC或是否有其他方法可以防止错误。
EDIT1: 改变了结束电话 controller.navigationController?.dismiss(animated:true,completion:nil)
到self.navigationController?.dismiss(animated:true,completion:nil)只是为了让问题更容易。
也累了:
self.dismiss(animated: true, completion:nil)
EDIT2: 从位于UITabbarController上的NC上的VC打开一个NC是不是很糟糕,或者只是将NavigationControllers作为TabbarController上的选项卡已经很糟糕了?
答案 0 :(得分:2)
您可能需要从该控制器侧关闭控制器:
// place this to the target controller, which handles you that modal view
self.dismiss(animated: true) {
//completion:
}
或
self.dismiss(animated: true, completion:nil)