用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中写入笔尖名称和类名称....     

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...