首先:
向我们展示一些代码,你在哪里推送新的视图控制器,也许是你的整个导航控制器代码
第二(解决方案):
我假设:
- 您的上一个/下一个按钮链接到您的 navigationController 类
- 您有适当的方法(prevPressed:/nextPressed:),当您单击其中一个按钮时会调用这些方法
我可以为您提供以下帮助:
visibleViewController
你知道哪个控制器在@property的那一刻是可见的
- 每次单击导航栏中的按钮时,您都可以询问
visibleViewController
应该推送/弹出哪个下一个/上一个视图控制器
最好的解决方案是,如果您的所有控制器 VC1/2/3/4 都是 viewController 类的子类,它在其接口中定义了一个方法:
- (Class)nextViewControllerClass;
- (Class)previousViewControllerClass;
并在实施中:
- (Class)nextViewControllerClass {
return [VC4 class];
}
- (Class)previousViewControllerClass {
return [VC1 class];
}
在您的 navigationController 代码中执行以下操作:
- (IBAction)next:(id)sender {
UIViewController *nextViewController = [[[self.visibleViewController nextViewControllerClass] alloc] init];
[self pushViewController:nextViewController animated:YES];
}