我正在尝试通过基本的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];
}
Run Code Online (Sandbox Code Playgroud)
视图控制器:
- (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];
}
Run Code Online (Sandbox Code Playgroud)
我在这里先向您的帮助表示感谢!
你确定你是从UIViewController继承而不是重写 - (UIView*)视图的实现吗?
编辑:更多信息:
UIViewController具有" - (UIView*)视图"消息的特殊实现,因此在调用它时,如果未设置视图成员变量,则调用loadView方法.因此,如果在子类(或名为view的属性)中提供" - (id)view"的实现,它将中断" - loadView"的自动调用.
| 归档时间: |
|
| 查看次数: |
7873 次 |
| 最近记录: |