我很新的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