如何解决用IBOutlet添加UIViewController子类
| 我以前曾在Apple网站上看到过此示例,但由于某种原因,我找不到它并且很吃力。我创建了一个TestViewController.h和.m文件,这些文件是UIViewController的子类,并且具有.xib。在TestAppDelegate.h中,我有:@interface TestAppDelegate : NSObject <UIApplicationDelegate> {
TestViewController *rootController;
}
@property (nonatomic,retain) IBOutlet UIWindow *window;
@property (nonatomic,retain) IBOutlet TestViewController *rootController;
在TestAppDelegate.m中,我有:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
[self.window addSubview:rootController.view];
[self.window makeKeyAndVisible];
return YES;
}
然后在我的MainWindow.xib中,拖动一个ViewController,将类更改为TestViewController,将控件从TestAppDelegate拖动到TestViewController。它构建良好,但是当我运行它时,我得到:
*** Terminating app due to uncaught exception \'NSUnknownKeyException\',reason: \'[<TestViewController 0x4d06570> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key label.\'
我不记得这些步骤中我缺少什么。任何帮助,将不胜感激。谢谢。
解决方法
@interface TestAppDelegate : NSObject <UIApplicationDelegate> {
TestViewController *rootController;
}
@property (nonatomic,retain) IBOutlet UIWindow *window;
@property (nonatomic,retain) IBOutlet TestViewController *rootController;
在TestAppDelegate.m中,我有:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions
{
// Override point for customization after application launch.
[self.window addSubview:rootController.view];
[self.window makeKeyAndVisible];
return YES;
}
如果这是您真正使用的代码,则在界面后添加以下行:
UIWindow *window;
并检查是否有帮助。
,对于您的窗口,您需要设置rootViewController。顺便说一句,您的\ rootController \命名有点误导,b / c UIWindow具有rootViewController属性。
因此,要使此功能生效,请代替[self.window addSubview:rootController.view];
行,而should7 should
如果要将代码与工作代码进行比较,只需从模板创建新项目。选择具有您要查找的架构的基于视图的应用程序。
,打开TestViewController.xib并检查那里是否连接了错误的插座。选择FilesOwner,然后转到连接检查器。错误的插座将显示为褪色。在这种情况下,它将被标记为
,在Interface Builder中检查您的插座,您有一个名为\“ label \”的东西不存在。删除对此的引用,您应该一切顺利。
,再次结帐...。
使用连接检查器并在主View Controller.Xib中写入笔尖名称和类名称....
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。