我正在打破 UINavigationController 的正常范式,或者至少我正在尝试这样做。
我们知道导航控制器通过堆栈管理导航。如果我使用根控制器 A 进行初始化,导航到 B,然后导航到 C,堆栈将看起来像 - C/B/A。
不过,我想做的是在视图 C 上有一个按钮,该按钮将显示另一个视图,比如 X,但仍将导航控制器的导航栏保持在原位。本质上,在堆栈上切换“C”和“X”。我试图通过弹出 C 并立即按下 X 来实现这一点,如下所示,但它不起作用。我在这里走错路了吗?
-(IBAction)showViewX:(id)sender {
[[self.parentViewController navigationController] popViewControllerAnimated:NO];
XViewController *xViewController = [[XViewController alloc]
initWithNibName:@"X"
bundle:[NSBundle mainBundle]];
[[self.parentViewController navigationController] pushViewController: xViewController animated:YES];
[xViewController release];
}