如果要使用主故事板文件,应用程序委托必须实现 window 属性 [英] The app delegate must implement the window property if it wants to use a main storyboard file
本文介绍了如果要使用主故事板文件,应用程序委托必须实现 window 属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在以编程方式实现一个列表视图控制器.当我尝试运行该项目时,出现错误:
I'm programmatically implement a list view controller. When I try to run the project, I got error:
2012-11-07 22:46:34.719 myTableViewControl[12021:c07] The app delegate must implement the window property if it wants to use a main storyboard file.
2012-11-07 22:46:34.722 myTableViewControl[12021:c07] -[AppDelegate setWindow:]: unrecognized selector sent to instance 0x7674e70
2012-11-07 22:46:34.723 myTableViewControl[12021:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[AppDelegate setWindow:]: unrecognized selector sent to instance 0x7674e70'
*** First throw call stack:
(0x1c8e012 0x10cbe7e 0x1d194bd 0x10df7ea 0x1c7dcf9 0x1c7d94e 0x1d60 0x107b7 0x10da7 0x11fab 0x23315 0x2424b 0x15cf8 0x1be9df9 0x1be9ad0 0x1c03bf5 0x1c03962 0x1c34bb6 0x1c33f44 0x1c33e1b 0x117da 0x1365c 0x1bd2 0x1b05)
libc++abi.dylib: terminate called throwing an exception
(lldb)
当我运行代码时,它挂在 main.m 上并显示
When I run the code, it hang on the main.m and shows that
"thread1: 信号SIGABRT"
"thread1: signal SIGABRT"
@autoreleasepool {return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
我的代码如下:AppDelegate.h
my code is as following: AppDelegate.h
//
// AppDelegate.h
// myTableViewControl
//
// Created by Max on 12-11-5.
// Copyright (c) 2012年 Max. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UINavigationController *navigationController;
@end
AppDelegate.m
AppDelegate.m
//
// AppDelegate.m
// myTableViewControl
//
// Created by Max on 12-11-5.
// Copyright (c) 2012年 Max. All rights reserved.
//
#import "AppDelegate.h"
#import "firstViewController.h"
@implementation AppDelegate
@synthesize navigationController;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions
{
// create the base window
UIWindow *window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
window.backgroundColor = [UIColor greenColor];
self.window = window;
[window release];
// this is the home page from the user's perspective
FirstViewController *fvc = [[FirstViewController alloc] init];
UINavigationController *nc = [[UINavigationController alloc]initWithRootViewController:fvc];
self.navigationController = nc;
[fvc release];
[nc release];
// show them
[self.window addSubview: nc.view];
[self.window makeKeyAndVisible];
return YES;
}
@end
FirstViewController 是列表视图控制器.
FirstViewController is list view controller.
推荐答案
您正在将窗口创建为局部变量,然后尝试使用 self.window
像访问属性一样访问它.使其成为财产.
You are creating your window as a local variable and then trying to access it as if it were a property by using self.window
. Make it a property.
这篇关于如果要使用主故事板文件,应用程序委托必须实现 window 属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文