我最近開始一個項目,使用Apple的Utility Application示例項目。在示例項目中,有一個信息按鈕顯示FlipSideView的實例。如果你知道Weather.app,你知道按鈕的行爲。UIViewController presentModalViewController:animated:什麼都不做?
然後,我改變了MainWindow.xib在窗口中間包含一個滾動視圖,並在窗口底部包含頁面控件視圖(同樣,像Weather.app一樣)。滾動視圖充滿了MainView的實例。當我點擊信息按鈕時,FlipSideView將顯示,但僅在以前由MainView實例填充的區域中顯示 - 這意味着頁面底部的頁面控制視圖在FlipSideView實例加載時仍顯示。
所以,我認爲我會爲頂層窗口添加一個UIViewController,這是在與項目一起創建的AppDelegate中聲明的窗口。所以,我創建了UIViewController的一個子類,在MainWindow.xib中放置它的一個實例,並將它的view outlet連接到在應用程序委託中聲明爲窗口的UIWindow。我還更改了按鈕的操作,以便它知道將消息發送到MainWindowController實例。消息確實發送(我使用NSLog()語句進行了檢查),但FlipSideView沒有顯示。下面是相關的代碼(?):
FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"FlipsideView" bundle:nil];
controller.delegate = self;
controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:controller animated:YES];
[controller release];
爲什麼的這並不是出於工作MainWindowController內,但完全相同的代碼是從MainViewController的容器內工作?我已經上傳了整個項目here,以便您能夠看到整個事情。
感謝您的幫助!
- RY
編輯:我想可能在UIViewController的視圖插座連接到一個一個UIWindow實例涉及到我。我現在將它連接到一個UIView,它工作得很好。