当前位置:  开发笔记 > IOS > 正文

为什么这个iPhone程序没有调用-loadView?

如何解决《为什么这个iPhone程序没有调用-loadView?》经验,为你挑选了1个好方法。

我正在尝试通过基本的iPhone编程工作,我对Interface Builder的工作方式有了很好的基本了解,所以我决定尝试以编程方式执行视图.我已经浏览了ViewController Apple指南,并在各处搜索,我似乎无法找到解决问题的方法.这让我相信这是一个非常简单的解决方案,但我只是在撞墙而已.基本上我所要做的就是创建一个视图,将主窗口作为子视图.我知道如果没有定义self.view,那么应该调用loadView方法,并且应该在那里设置所有内容.这是我的代码的当前状态:

代表:

- (void)applicationDidFinishLaunching:(UIApplication *)application {    
    StartMenuViewController *aViewController = [[StartMenuViewController alloc] init];
    self.myViewController = aViewController;
    [aViewController release];

    UIView *controllersView = [myViewController view];

    window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
    [window setBackgroundColor:[UIColor redColor]];

    [window addSubview:controllersView];
    [window makeKeyAndVisible];
}

视图控制器:

- (id)init {
    if (self = [super init]) {
        self.title = @"Start Menu";
    }
    return self;
}

// Implement loadView to create a view hierarchy programmatically, without using a nib.
- (void)loadView {
    UIView *startView = [[UIView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame];
    [startView setAutoresizingMask:UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth];
    [startView setBackgroundColor:[UIColor greenColor]];
    self.view = startView;
    [startView release];
}

我在这里先向您的帮助表示感谢!



1> Jesse Rusak..:

你确定你是从UIViewController继承而不是重写 - (UIView*)视图的实现吗?

编辑:更多信息:

UIViewController具有" - (UIView*)视图"消息的特殊实现,因此在调用它时,如果未设置视图成员变量,则调用loadView方法.因此,如果在子类(或名为view的属性)中提供" - (id)view"的实现,它将中断" - loadView"的自动调用.

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有