删除以前的UIView

时间:2012-11-13 08:55:11

标签: objective-c ios

我有三个视图控制器和三个不同的XIB,让我们说ViewControllerA,ViewControllerB和ViewControllerC,每个视图控制器都有UIView变量名为view in the property&property。所以它会是这样的:

@property (readwrite, retain) UIView *view;

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

删除ViewControllerB的UIView不是问题,我可以在ViewControllerB方法中做这样的事情:

[self.view removeFromSuperview];

但是如何删除ViewControllerA的UIView?

感谢

1 个答案:

答案 0 :(得分: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;