2011-09-17 17 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]; 
相关问题