0

我试图能够在不推送到 NavController 的情况下更改 NavController 中的内容。例如,如果我有一个视图控制器“A”,当用户继续手势或单击时,视图将更改为另一个视图控制器“X”,但是导航控制器不会将视图控制器“X”推送到其堆栈上。因此,我可能会做手势或单击继续显示 viewController x 、 y 和 z。但是,在任何时候我都可以按回导航栏,它会将我返回到其堆栈上的前一个 viewController

澄清一下,我希望能够实现一个不影响导航控制器的页面控制器,因此在任何时候,如果用户按下回,他们就会返回到堆栈上的前一个视图控制器。

在图像中,显示了 navcontroller 上的视图控制器。我希望能够通过白色部分中的页面控制器在不同视图之间进行更改。所以我在那里拖放了一个 UIView。我可以将该 UIview 连接到视图控制器,然后实现页面控制器,或者我如何才能在不影响导航控制器的情况下更改白色部分。感谢一切!

在此处输入图像描述

4

2 回答 2

1

您应该能够通过以下方法更改位于视图控制器“堆栈”顶部(或任何位置)的视图[UINavigationController setViewControllers: animated: ]

如果您已经以其他方式显示了视图控制器,请替换您要使用的视图控制器并将“动画”设置为“否”。

于 2012-12-25T03:53:20.930 回答
1

从您的问题中不清楚您是否希望这些其他控制器 x、y 和 z 在堆栈中。如果你不这样做,那么你可以将它们添加为堆栈中的一个控制器的子视图控制器,这对后退按钮的操作没有影响——它仍然会带你回到前一个控制器(你推的)。可以这样做:

 -(IBAction)addBlue:(id)sender {
        BlueController *blue = [self.storyboard instantiateViewControllerWithIdentifier:@"Blue"];
        [self addChildViewController:blue];
        [self.blue didMoveToParentViewController:self];
        blue.view.frame = self.view.bounds;
        [self.view addSubview:blue.view];
    }
于 2012-12-25T06:10:13.933 回答