特定于iPad的视图崩溃在发布时,在iPhone上很好

时间:2011-08-25 20:21:11

标签: iphone ipad interface-builder crash ios4

我正在尝试学习IOS(4.3)编程并且坚持这一点。我正在使用基于Windows的应用程序,并将其设置为使用iPhone和iPad视图。

它在self.window.rootViewController = self.viewController上崩溃;错误

'NSInternalInconsistencyException',原因:' - [UIViewController _loadViewFromNibNamed:bundle:]加载了“SwitchViewController”笔尖,但未设置视图插座。

此错误的大部分内容都是为了确保您的视图正确地连接到您的控制器并且我的连接已经连接起来。该代码适用于iPhone视图,它不适用于iPad。每个视图中的委托和其他连接都是相同的,这可能是问题所在,但我不知道需要什么不同。

我在这里使用命名约定:iOS: Using device modifiers for loading xib files?来加载不同操作系统的视图。我认为这意味着只要我将_iPhone / _iPad附加到名称的末尾,程序就会自动选择正确的视图,并且当我添加iPad视图时它的行为确实发生了变化,所以我认为它正在达到它。在我将iPhone(最初是通用视图)和iPad之间的视图分开之前,iPad代码使用了通用视图,并且在添加视图时我没有更改任何代码。

连连呢?我想我已经把所有东西都搞定了,但我一直盯着它看......“

我只是压缩了整个项目,这里可以使用,我认为这更容易,因为我们正在处理视图:

http://www.megaupload.com/?d=ZAKAY96U

2 个答案:

答案 0 :(得分:0)

在你的 - (id)initWithNibName:(NSString *)nibNameOrNil包中:(NSBundle *)nibBundleOrNil在开头添加这一行:

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) nibNameOrNil = @"iPadXibName";

并确保ipad的xib连接了所有正确的插座(如果它可以作为仅限ipad的实现,可能就是这种情况,但是你可能添加了一些内容或者在合并iphone和ipad版本时忘了添加内容)

答案 1 :(得分:0)

我在一个新项目中重新编写了我的代码,它立即正常工作。原始项目出了点问题。