我正在尝试学习 iOS (4.3) 编程并陷入困境。我正在使用基于 Windows 的应用程序,并将其设置为同时使用 iPhone 和 iPad View 。
它崩溃:
self.window.rootViewController = self.viewController;
我得到了错误
'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "SwitchViewController" nib
但是,没有设置 View 导出。
这个错误的大多数事情都是为了确保您的 View 正确连接到您的 Controller 并且我的已连接。该代码适用于 iPhone View ,但不适用于 iPad View 。每个 View 中的代表和其他连接都是相同的,这可能是问题所在,但我不知道需要什么不同。
我正在使用命名约定 here加载不同操作系统的 View 。我认为这意味着只要我将 _iPhone/_iPad 附加到名称的末尾,程序就会自动选择正确的 View ,并且当我添加 iPad View 时它的行为确实发生了变化,所以我认为它正在达到它。
在我分离 iPhone(最初是通用 View )和 iPad 之间的 View 之前,iPad 代码使用通用 View ,并且在添加 View 时我没有更改任何代码。
最佳答案
在你的 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 在开头添加这一行:
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) nibNameOrNil = @"iPadXibName";
并确保 ipad 的 xib 已连接所有正确的 socket (如果它仅作为 ipad 实现,则可能是这种情况,但在合并 iphone 和 ipad 版本时您可能添加了一些内容或忘记添加一些内容)。
关于iphone - iPad 特定的 View 在启动时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7196694/