0

我在 Xcode 4.3.3 中创建了一个通用窗口应用程序。后来我添加了一个没有 XIB 的 View Controller(UniversalRootViewController) 类。然后我创建了两个 XIB 文件(RootViewController_iPhone、RootViewController_iPad),然后将这些 iPhone XIB 文件 RootViewController_iPhone 连接到 UniversalRootViewController 类: RootViewController_iPhone -> 选择文件所有者并将 Identity Inspector 中的类名更改为 UniversalRootViewController,然后将视图作为出口连接到 UniversalViewController 和为 RootViewController_iPad 做了同样的事情。

在 App Delegate 中,我添加了以下代码行。

UniversalRootViewController *controller = nil;

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
    controller = [[UniversalRootViewController alloc] initWithNibName:@"RootViewController_iPad" bundle:[NSBundle mainBundle]];
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:controller];
    [self.window addSubview:navigationController.view];
}
else
{
    controller = [[UniversalRootViewController alloc] initWithNibName:@"RootViewController_iPhone" bundle:[NSBundle mainBundle]];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:controller];
    [self.window addSubview:controller];
}

我还在 UniversalApp-Info.plist 中添加了这两个键值对 主 nib 文件基本名称:RootViewController_iPhone 主 nib 文件基本名称(iPad):RootViewController_iPad

当我运行此应用程序时,该应用程序通过显示以下错误消息来创建。

由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[setValue:forUndefinedKey:]:此类与键视图的键值编码不兼容。”

我将 XIB 文件正确连接到 View Controller。我不知道为什么应用程序崩溃。请告诉我解决方案。

4

2 回答 2

1

您必须将文件所有者中的视图出口设置为 XIB 文件中的每个视图: - 转到 XIB 文件之一(例如 iphone)并用鼠标左键从文件所有者拖动到下面的顶部视图对象。选择视图。- 对其他 XIB 文件执行相同操作

于 2012-10-17T08:59:23.147 回答
0

我通过删除 Universal-Info.plist 中 Nib 文件的两个键值对解决了我的问题。现在该应用程序完美运行,没有任何崩溃。我删除了以下两行

于 2012-10-17T10:00:06.140 回答