将ViewController添加到Appdelegate

Pra*_*ypa 5 uiviewcontroller

我正在尝试将视图控制器添加到Appdelegate类.我的代码是这样的..

[self.view addsubView:viewcontroller.view];
Run Code Online (Sandbox Code Playgroud)

但不幸的是,我无法查看控制器视图.如果我在某个地方出错,请建议.谢谢你的时间.

AppdidFinishLaunching中的方法是: -

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];
    // [self.window addSubview:videoController.view];
    self.window.rootViewController = videoController;
    [self.window makeKeyAndVisible];    
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

在ViewController的Load视图中我写了

UIButton *playMovie = [UIButton buttonWithType:UIButtonTypeRoundedRect];
playMovie.frame = CGRectMake(70,30,100,50);
[playMovie setTitle:@"Play Movie" forState:UIControlStateHighlighted];
[playMovie addTarget:self action:@selector(playMovie:) forControlEvents:UIControlEventTouchDown];
[self.view addSubview:playMovie];
Run Code Online (Sandbox Code Playgroud)

这里的问题是我无法查看按钮和视图.请帮忙.

mat*_*att 9

在任何情况下都不应该像这样手动将视图控制器的视图添加到界面.应用程序委托本身不是视图控制器; 所以viewcontroller不是它的孩子.所以视图不是你要添加的.正确使用视图控制器:视图控制器可以是您的应用程序窗口rootViewController,也可以是其他视图控制器的子视图 - 在任何一种情况下,它的视图都会自动放入界面中.

如果此视图旨在作为应用程序的根视图,则执行Xcode 4.2项目模板所执行的操作(例如,单视图应用程序):实例化视图控制器并将其指定为self.window.rootViewController.如果没有,您不能使用视图控制器将其添加为您尝试的子视图; 只需获取视图并添加它,而无需介入视图控制器.

它可能会帮助您阅读我关于视图控制器的章节:http://www.apeth.com/iOSBook/ch19.html