当堆栈中有超过10个控制器时,返回RootViewController

时间:2014-06-13 09:42:09

标签: ios objective-c

我有很多控制器,两个控制器都有一个后退按钮popToViewController。当我一遍又一遍地从一个控制器转换到另一个控制器而不是点击后退按钮时,我可以在它们之间移动很长时间。我现在做得很好。我试试这个:如果堆栈中的控制器超过7 - popToRootViewController,那么popToViewController

int controllersQuantity = 7;
if ((int)self.navigationController.viewControllers > controllersQuantity) {
    [self.navigationController popToRootViewControllerAnimated:YES];
} else {
    [self.navigationController popViewControllerAnimated:YES];
}

这不起作用。帮助解决我的任务,谢谢你的答案。

2 个答案:

答案 0 :(得分:1)

为什么要在此行中投放NSArrayint(int)self.navigationController.viewControllers

该属性是一个不是整数的数组:

NSInteger controllersQuantity = 7;
if ([self.navigationController.viewControllers count] > controllersQuantity) {
    [self.navigationController popToRootViewControllerAnimated:YES];
} else {
    [self.navigationController popViewControllerAnimated:YES];
}

答案 1 :(得分:0)

如果您想要A→B→C→...并希望从其他控制器返回A,您可以使用它来访问根控制器。

-(IBAction)unwindToRootController:(UIStoryboardSegue *)segue;

在标题(.h)文件中声明此操作,然后将Button与Exit Responder连接并选择此事件。它会弹出你的根视图控制器。

希望这有帮助。