我对iOS开发很陌生,我正在尝试开发一个简单的应用程序,其中一个按钮可以更改子视图。我有一个基础RootViewController
,可在MiddleView
上正确显示init
。 MiddleView
只有一个标记为“First”的按钮,该按钮在(Interface Builder中)与RootViewController
的{{1}}连接。
-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
中添加RootViewController
引用并添加
MiddleViewController
到self.middle.rootViewController = self;
的{{1}}。
RootViewController
注意:我已经尝试在-viewDidLoad
内初始化firstController,当它最初没有运行时,我将初始化移动到-(IBAction)openFirstView:(id)sender{
[middle.view removeFromSuperview];
[self.view addSubview:firstController.view];
}
并且已经证明它是通过显示正确地从nib初始化FirstView直接在-openFirstView
其中-viewDidLoad
在代码中加载到引用的位置。但是,当我运行代码并单击按钮时,视图中的任何内容都不会更改。
我做了更多的诊断。我特别发现,-viewDidLoad
中的firstController
被调用了两次,一次是在原始加载时,一次是在第一次点击按钮时,我不确定原因。
答案 0 :(得分:0)
您似乎没有在以下方法中初始化您的firstView
-(IBAction)openFirstView:(id)sender{
[middle.view removeFromSuperview];
//First initialize the firstController
[self.view addSubview:firstController.view];
}