Ios 如何从一个导航控制器切换到另一个导航控制器
我的A视图在其Ios 如何从一个导航控制器切换到另一个导航控制器,ios,objective-c,uinavigationcontroller,Ios,Objective C,Uinavigationcontroller,我的A视图在其viewWillLoad方法中显示了一个UIImagePockerController模态控制器。拍摄完照片后,将通过以下方式取消拍摄: [self dismissViewControllerAnimated:YES completion:nil]; 进入我的A视图后,我将通过以下方式切换到我的B视图: [self.tabBarController setSelectedIndex:1]; 问题是,在切换tabBarController(如上所述)后,如果用户点
viewWillLoad
方法中显示了一个UIImagePockerController
模态控制器。拍摄完照片后,将通过以下方式取消拍摄:
[self dismissViewControllerAnimated:YES completion:nil];
进入我的A视图后,我将通过以下方式切换到我的B视图:
[self.tabBarController setSelectedIndex:1];
问题是,在切换tabBarController
(如上所述)后,如果用户点击第一个选项卡,相机仍在显示
据我所知,导航控制器在堆栈上推送视图,直到我通过简单切换选项卡栏到达离开的A视图,因此返回该选项卡栏时仍显示A视图是有意义的
如何将导航堆栈重置为其根,然后切换到索引1处的选项卡栏
试试这个:
[self.navigationController popViewControllerAnimated:YES];
[self.tabBarController setSelectedIndex:1];
或者这个:
[self.navigationController popToRootViewControllerAnimated:YES];
[self.tabBarController setSelectedIndex:1];
popViewControlleranimated:将其设置为堆栈中的后退1步。
PoptorootViewController激活:将其设置为根。在我看来,您对导航的思考方式并不完全正确。如果你在一个特定的导航中,作为某种行动的下一步,切换到另一个导航是不正确的。你可能是对的,我刚刚开始学习如何。你能再解释一下吗?我做错了什么?从用户的角度想想,就像你让他从一条路跳到另一条路,如果他/她想回来怎么办。您可以在以模态方式加载的导航控制器中显示A,并在需要时按下B。完成后,只需取消模式