2011-09-17 42 views
0

我想在不使用IB的情況下製作基於窗口的應用程序。 我通過分配它創建了MyViewController。 我還必須在MyViewController裏面創建視圖嗎? 不分配它,應用程序崩潰。 對於UITableViewController,UINavigationController,...我不必分配視圖。 有什麼區別?當我在沒有IB的情況下創建應用程序時,是否必須分配視圖?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  

    viewController = [[MyViewController alloc]init]; 
    viewController.view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)]; 
    [self.window addSubview:viewController.view]; // app crashes here without allocating view explicitly 
} 

回答

0

你應該明確地分配的觀點,就像你在你的代碼所示左右創建的視圖控制器實施「的loadView」時,屏幕上首先顯示它。

+0

當我創建UITableViewController,UINavigationController時,是否必須分配視圖?用於UITableViewController的 – user698200

+0

- 用於UINavigationController的YES - 否,因爲UINavigationController本身是用另一個ViewController初始化的,並且單獨的UINavigationController沒有任何視圖。這是控制器的視圖,在啓動後變成導航控制器的視圖 – samfisher

0
MyViewController *_myViewController = [[MyViewController alloc]init]; 
UIView* myView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)]; 

_myViewController.view = myView 
[myView release]; 
[self.window addSubview:myViewController.view]; 
相關問題