0
我有三个UIViewController.When我从控制器A到B然后B到C然后再到B.控制器B导航栏的后退按钮带我到C.有没有办法确保B的导航栏后退按钮将我带到A,无论我从B到C和C到B多少次。这是否可能?保持ios中视图控制器的第一个状态
我有三个UIViewController.When我从控制器A到B然后B到C然后再到B.控制器B导航栏的后退按钮带我到C.有没有办法确保B的导航栏后退按钮将我带到A,无论我从B到C和C到B多少次。这是否可能?保持ios中视图控制器的第一个状态
你要定制回来在这种情况下与自定义的方法使用按钮 -
UIBarButtonItem *barBtnItem = [[UIBarButtonItem alloc]initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:self action:@selector(backToViewController)];
self.navigationItem.backBarButtonItem = barBtnItem;
- (void)backToViewController
{
int index =-1;
for (UIViewController *controller in self.navigationController.viewControllers) {
index = index +1;
if ([controller isKindOfClass:[self class]]) {
if (index>0)
{
[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:index-1]
animated:YES];
}
break;
}
}
设置控制器A上后退按钮调用popToRootViewController
方法,而不是popViewController
的单击事件您的导航&根控制器。
注意:在这里,我假设你已经使用自定义栏按钮项目。
当用户从C到B,你是否推新的B视图控制器,而不是弹回到以前? – johnpatrickmorgan
请添加一些您用于导航目的的代码片段。 –
如果A是你的根视图控制器,你可以通过捕获后退按钮来使用popToRootViewControllerAnimated。 –