如下所示,notificationsVC
是 TabBarController 的一部分,它嵌入navigationContoller
(让我们先调用它nC)。然后是来自notificationsVC的segue到第二个navigationController,它将显示messagesVC。
messagesVC
中有一个后退按钮,按下后应该返回notificationsVC
func backbutton() {
navigationController?.popViewControllerAnimated(true)
}
现在这显然不起作用,因为navigationController将获取最近的NC并在其堆栈中弹出VC,但它不会让我回到notificationsVC
。
还有其他选择吗?虽然我试过这个并没有成功。
self.dismissViewControllerAnimated(true, completion: nil);
此外,我正在使用JSQMessagesViewController库来显示messagesVC
中的消息,这些消息无关紧要,但仍值得一提。谢谢你的时间!
答案 0 :(得分:0)
尝试: -
let nVC = self.navigationController?.tabBarController?.navigationController?.storyboard?.instantiateViewControllerWithIdentifier("NotificationStoryboardVC_ID") as! NotificationVC
navigationController?.tabBarController?.navigationController?.pushViewController(nVC, animated: true)
答案 1 :(得分:0)
你可以通过从TabBarViewController中询问它来访问第一个NavigationViewController,如下面的代码所示:
tabBarController?.navigationController?.popViewControllerAnimated(true)
还要求第二个导航控制器的导航控制器工作:
navigationController?.navigationController?.popViewControllerAnimated(true)
答案 2 :(得分:0)
您的导航控制器只有一个VC,即MessagesVc。因此,当您弹出它时,导航控制器堆栈中没有其他VC可以呈现。您的NotificationsVC不在导航控制器的堆栈中。
所以我建议你在后退按钮上点击这样做:
tabBarController?.selectedIndex = Index_Of_NotificationsVC