我是iOS开发的新手,我正在尝试开发一个简单的应用程序,在这个应用程序中,一个按钮可以改变子视图。我有一个基本的RootViewController,它可以在init上正确显示MiddleView。MiddleView只有一个标记为"First“的按钮,它(在界面生成器中)连接到RootViewController的-openFirstView。
下面是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: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来证明它可以从nib正确初始化
其中firstController被加载到前面代码中的引用。但是,当我运行代码并单击按钮时,视图中没有任何变化。
我又做了些诊断。我特别发现rootViewController中的-ViewDidLoad被调用了两次,一次是在初始加载时,另一次是在第一次单击按钮时,我不确定确切的原因。
发布于 2011-06-27 15:37:09
看起来你还没有在下面的方法中初始化你的firstView
-(IBAction)openFirstView:(id)sender{
[middle.view removeFromSuperview];
//First initialize the firstController
[self.view addSubview:firstController.view];
}https://stackoverflow.com/questions/6434791
复制相似问题