gpt4 book ai didi

cocoa-touch - 为什么这个iPhone程序不调用-loadView?

转载 作者:行者123 更新时间:2023-12-03 00:13:38 26 4
gpt4 key购买 nike

我正在尝试完成基本的 iPhone 编程,并且我对 Interface Builder 的工作原理有很好的基本了解,因此我决定尝试以编程方式制作 View 。我已经浏览了 ViewController Apple 指南并到处搜索,但似乎找不到解决我的问题的方法。这让我相信这是一个非常简单的解决方案,但我只是在用头撞墙。基本上我想做的就是创建一个将主窗口作为 subview 的 View 。我知道如果 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];
}

View Controller :

- (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];
}

感谢您提前提供的帮助!

最佳答案

您确定您继承自 UIViewController 并且没有覆盖 - (UIView*)view 的实现吗?

编辑:更多信息:

UIViewController 对“-(UIView*) view”消息有一个特殊的实现,因此在调用它时,如果未设置 View 成员变量,则会调用 loadView 方法。因此,如果您在子类中提供“- (id)view”的实现(或名为 view 的属性),它将破坏“- loadView”的自动调用。

关于cocoa-touch - 为什么这个iPhone程序不调用-loadView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/640904/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com