【发布时间】:2014-03-14 18:26:36
【问题描述】:
我通常使用以下方法更改为另一个 ViewController:
如果我有 3 个 ViewController:VC1、VC2 和 VC3
例如,如果我想从 VC1 切换到 VC3,
在 VC1 文件中:
VC3 *myVC3 = [[VC3 alloc]initWithNibName:@"NibName" bundle:nil];
[self.view addSubView:myVC3.view];
当我在VC3时,如果我想去VC1,我使用:
[self.view removeFromSuperView];
然后我回到VC1。
问题是,当我有三个或更多 ViewController 并且我正在测试应用程序时,ViewController 会重叠。
例如:我们在VC1,然后我切换到VC3,当我想去VC2时,VC1出现了。 我认为这是一个实施问题。我认为这种方法对于 ViewControllers 的交换可能是错误的。
我该如何解决这个问题?我在想,但没有得到任何解决方案。
【问题讨论】:
-
您并没有真正使用 ViewControllers。您正在使用 1 个 ViewController 并将其他 ViewControllers 视图添加到第一个。您应该考虑实现 UINavigationController,并推送/弹出 ViewControllers。
-
试试 -presentViewController:animated:completion: 方法。
-
最好使用 [self presentViewController...] 而不是 addSubview。然后,将 [self dimissViewController...] 移除
-
我不想使用 NavigationController。我特别需要使用 UIButton 和方法在 ViewControllers 之间进行更改。如果你们可以给我写一些例子会很棒。
-
而不是 removeFromSuperView 和 addsubview 你可以隐藏或显示视图。首次添加,然后显示隐藏视图。
标签: ios objective-c uiviewcontroller