2015-05-26 45 views
0

我有三个UIViewController.When我从控制器A到B然后B到C然后再到B.控制器B导航栏的后退按钮带我到C.有没有办法确保B的导航栏后退按钮将我带到A,无论我从B到C和C到B多少次。这是否可能?保持ios中视图控制器的第一个状态

+0

当用户从C到B,你是否推新的B视图控制器,而不是弹回到以前? – johnpatrickmorgan

+0

请添加一些您用于导航目的的代码片段。 –

+0

如果A是你的根视图控制器,你可以通过捕获后退按钮来使用popToRootViewControllerAnimated。 –

回答

1

你要定制回来在这种情况下与自定义的方法使用按钮 -

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; 
     } 
    } 
1

设置控制器A上后退按钮调用popToRootViewController方法,而不是popViewController的单击事件您的导航&根控制器。

注意:在这里,我假设你已经使用自定义栏按钮项目。

相关问题