我知道,覆盖后退按钮功能不是一个好的用户设计。但是我有流程,在某个时候回头将毫无意义。相反,我希望用户返回两个或多个控制器
因此,在某些ViewController中,单击后退按钮应该触发几个ViewController的弹出,而不仅仅是前面的一个。我尝试了子类化NavigationController并覆盖popViewController-Method:
- (UIViewController *)popViewControllerAnimated:(BOOL)animated
{
if([[self.viewControllers lastObject] class] == [MyCOntroller class]){
[super popViewControllerAnimated:NO]; // pop once
return [super popViewControllerAnimated:animated]; // pop twice
} else {
return [super popViewControllerAnimated:animated];
}
}
但是我遇到了问题,其中NavigationTopBar与ViewController在前面不再同步。有人遇到过同样的问题吗?
最佳答案
您是否尝试使用
popToViewController:animated:
弹出视图控制器,直到
指定的视图控制器位于
导航堆栈的顶部。
也许您可以为此类视图控制器设置自定义后退按钮,然后尝试
- (IBAction)backButtonPressed
{
[yourNavigationcontroller popToViewController:viewController animated:YES];
}