我很新的iOS开发,我试图开发一个简单的应用程序,其中按钮更改子视图。我有一个基地RootViewController
,它在init
上正确显示MiddleView
。 MiddleView
有一个单独的按钮,标记为“第一个”,它连接到(在Interface Builder中)到RootViewController
的-openFirstView
。removefromsuperview和addsubview不会改变显示
下面是如何MiddleView
是内RootViewController
的显示-viewDidLoad
MiddleViewController *middleTemp = [[MiddleViewController alloc] initWithNibName:@"MiddleView" bundle:nil];
self.middle = middleTemp;
self.middle.rootViewController = self;
[self.view addSubview:middle.view];
[middleTemp release];
所以我有以下ViewControllers
S:MiddleViewController
和FirstController
分别控制MiddleView
和FirstView
和RootViewController
这两者之间切换。
我已经放置在MiddleViewController
一个RootViewController
参考,并添加
self.middle.rootViewController = self;
到RootViewController
的-viewDidLoad
连接这一点。
-(IBAction)openFirstView:(id)sender{
[middle.view removeFromSuperview];
[self.view addSubview:firstController.view];
}
注:我试过内-openFirstView
初始化firstController,当它最初并没有跑,我搬到了初始化-viewDidLoad
,并已证明,它是从笔尖正确地通过直接在-viewDidLoad
显示的firstView初始化
其中firstController
加载到代码中的引用。但是,当我运行代码并单击该按钮时,视图中的任何内容都不会改变。
我已经做了一些更多的诊断。我发现特定的-ViewDidLoad
在rootViewController
被调用两次,一次在原始加载和一次按钮的第一次点击,我不确定为什么。
我很困惑。你能列出你拥有的'UIViewController's以及它们控制的是什么'UIView'?另外,请在“RootViewController”中显示'MiddleView'的方式。 – PengOne
对不起,我已经更新了。 – Tas