iPhone SDK:如何在另一个中显示视图控制器?

时间:2009-11-02 22:41:59

标签: iphone cocoa-touch

从根本上说,我想要做的就是在ViewControllerA中显示ViewControllerB和ViewControllerC。我该怎么做?

提前致谢。

2 个答案:

答案 0 :(得分:1)

您不显示视图控制器,而是显示视图。话虽如此,你可以这样做:

UIViewController *a = ...;
UIViewController *b = ...;
[a.view addSubview:b.view];

现在,说完了,你不应该这样做。大量的东西行为不正常,因为UIView,UIWindow和UIViewController之间存在大量未记录的交互。文档中没有任何内容表明它不起作用,但是随机的东西停止正常运行(内部视图的VC上的viewWillAppear:不会被调用,等等。)

如果您需要此功能,则应该file Apple的错误。

答案 1 :(得分:0)

导航视图控制器的默认模板应该执行您想要的操作,假设您需要两个不同的屏幕(在同一屏幕上不是两个不同的部分)。无论何时您想要将视图从当前视图更改为另一个视图,只需告诉导航控制器将其推入堆栈:

[self.navigationController pushViewController:viewBoards animated:YES];

默认导航视图控制器为您提供了一个带有导航视图控制器的根视图控制器。它还为您提供了一个名为MainWindow的视图控制器。只需添加尽可能多的MainWindow副本即可获得您的功能。