Ios 如何在基于导航的应用程序中返回2个视图
我创建了一个包含4个视图的基于视图的应用程序。通过使用导航控制器,我正在更改视图。在我的第三视图中,有一个按钮。如果我点击该按钮,应用程序将进入第一个视图(返回两个视图) 我用过Ios 如何在基于导航的应用程序中返回2个视图,ios,ios4,uinavigationcontroller,Ios,Ios4,Uinavigationcontroller,我创建了一个包含4个视图的基于视图的应用程序。通过使用导航控制器,我正在更改视图。在我的第三视图中,有一个按钮。如果我点击该按钮,应用程序将进入第一个视图(返回两个视图) 我用过 [self.navigationController popViewControllerAnimated:YES]; [self.navigationController popViewControllerAnimated:YES]; 这是行不通的。它只转到上一页。使用 popToRootViewControl
[self.navigationController popViewControllerAnimated:YES];
[self.navigationController popViewControllerAnimated:YES];
这是行不通的。它只转到上一页。使用
popToRootViewControllerAnimated:
要一直返回到俯视图控制器,请执行以下操作:
文件:
弹出堆栈上除根视图控制器之外的所有视图控制器,并更新显示
- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated
或
要返回到特定视图控制器,请提供要转到的视图控制器
文件:
弹出视图控制器,直到指定的视图控制器位于导航堆栈的顶部
- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated
参数
视图控制器
您希望位于堆栈顶部的视图控制器。尝试此操作,并根据您的规范进行更改
-(void)goToMainCategoryView;
{
id object = nil;
for (UIViewController *viewControl in self.navigationController.viewControllers)
{
if(viewControl.view.tag == 0)
{
object = viewControl;
}
}
[self.navigationController popToViewController:object animated:YES];
}
通过索引选择UIViewController的另一个简单根目录是:
NSArray *viewsArray = [self.navigationController viewControllers];
UIViewController *chosenView = [viewsArray objectAtIndex:1];
[self.navigationController popToViewController:chosenView animated:YES];
chosenView
将成为导航堆栈中的第二个视图(位置1)。如果您有一个大的堆栈,并且想要进入一个特定的视图。在swift 1.2::xcode:6.4中也是这样
for (UIViewController *controller in self.navigationController.viewControllers)
{
if ([controller isKindOfClass:[NeededViewController class]])
{
[self.navigationController popToViewController:controller
animated:YES];
break;
}
}
for controller: UIViewController in self.navigationController?.viewControllers as! [UIViewController] {
if controller.isKindOfClass(YourViewController) {
self.navigationController!.popToViewController(controller, animated: true)
}
}
@umakanta:如果我的回答对你有帮助,那么就接受或投票支持我的回答:多么甜蜜。工作完美。
for controller: UIViewController in self.navigationController?.viewControllers as! [UIViewController] {
if controller.isKindOfClass(YourViewController) {
self.navigationController!.popToViewController(controller, animated: true)
}
}