0

我有三个具有三个不同 XIB 的视图控制器,比如说 ViewControllerA、ViewControllerB 和 ViewControllerC,并且每个视图控制器在其属性中都有名为 view 的 UIView 变量。所以它会是这样的:

@property (readwrite, retain) UIView *view;

首先,场景 ViewControllerA 加载,然后在我触摸 ViewControllerB 的按钮场景后出现。但我故意不从超级视图中删除 ViewControllerA 的 UIView。然后在我触摸一个按钮后,场景导航到 ViewControllerC。在这里,在导航到 ViewControllerC 之前,我想从超级视图中删除 ViewControllerA 和 ViewControllerB 的 UIView

删除 ViewControllerB 的 UIView 不是问题,我可以在 ViewControllerB 方法中执行以下操作:

[self.view removeFromSuperview];

但是如何删除 ViewControllerA 的 UIView?

谢谢

4

1 回答 1

0

如果你想完全独立于其他视图控制器,你可以在 appDelegate.window.rootViewController 中切换它们。只创建指向 UIApplication 的变量 appDelegate。
并自己处理动画。

例子:

AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
UIViewController *controller1 = [ViewControllerA alloc] initWithNibName:@"ViewControllerA" bundle:nil];
UIViewController *controller2 = [ViewControllerB alloc] initWithNibName:@"ViewControllerB" bundle:nil];

appDelegate.window.rootViewController = controller1;
appDelegate.window.rootViewController = controller2;
于 2012-11-13T09:09:10.387 回答