removefromsuperview和addsubview不会更改显示

问题描述

| 我是iOS开发的新手,我正在尝试开发一个简单的应用程序,其中的按钮可更改子视图。我有一个底数
RootViewController
,它在
init
上正确显示
MiddleView
MiddleView
一个标记为“第一”的按钮,该按钮连接(在Interface Builder中)到
RootViewController
-openFirstView
。 这是
RootViewController
-viewDidLoad
中ѭ1的显示方式
MiddleViewController *middleTemp = [[MiddleViewController alloc] initWithNibName:@\"MiddleView\" bundle:nil];
    self.middle = middleTemp;
    self.middle.rootViewController = self;
    [self.view addSubview:middle.view];
    [middleTemp release];
所以我有以下
ViewControllers
:分别控制
MiddleView
FirstView
MiddleViewController
FirstController
,以及在两者之间切换的
RootViewController
。 我通过在
MiddleViewController
中放置
RootViewController
引用并添加
self.middle.rootViewController = self; 
RootViewController
\'s
-viewDidLoad
-(IBAction)openFirstView:(id)sender{
    [middle.view removeFromSuperview];
    [self.view addSubview:firstController.view];
}
注意:我已经尝试在
-openFirstView
中初始化firstController,并且当它最初没有运行时,我将初始化移至
-viewDidLoad
,并通过直接在
-viewDidLoad
显示FirstView证明了它是从笔尖正确初始化的。 在代码的前面,ѭ25被加载到引用中。但是,当我运行代码并单击按钮时,视图中没有任何变化。 我已经做了更多的诊断。我已经发现,在
rootViewController
中的
-ViewDidLoad
被两次调用,一次是在原始负载上,一次是在按钮的第一次单击上,我不确定为什么。     

解决方法

        看来您尚未通过以下方法初始化firstView
-(IBAction)openFirstView:(id)sender{
    [middle.view removeFromSuperview];
    //First initialize the firstController
    [self.view addSubview:firstController.view];
}