我正在开发一个通用应用程序。它在 iPhone 和 iPad 模拟器以及 iPhone 4S 上运行良好,但在 iPad 上崩溃。它是 iPad 上的拆分视图,只有在打开某些视图时才会崩溃。有些视图工作得很好,没有问题,但在其他视图中,当在主视图中选择某一行以在详细视图中显示新视图时,它会崩溃。如果我在 iPad 模拟器上运行有问题的视图,它就可以很好地打开。有任何想法吗?
这是我在主视图中选择其行时在详细视图中显示问题视图之一的方式。我在这个视图中有一个搜索栏,搜索栏出现了,但地图视图没有。同样,一切都在 iPad 模拟器上运行良好。
else if (indexPath.row == 8)
{
RSFMipad *rsfm = [[RSFMipad alloc]initWithNibName:nil bundle:nil];
NSMutableArray *details = [self.splitViewController.viewControllers mutableCopy];
UINavigationController *detailNav = [[UINavigationController alloc]initWithRootViewController:rsfm];
[details replaceObjectAtIndex:1 withObject:detailNav];
KFBAppDelegate *appDelegate = (KFBAppDelegate *)[[UIApplication sharedApplication]delegate];
appDelegate.splitViewController.viewControllers = details;
appDelegate.window.rootViewController = self.splitViewController;
appDelegate.splitViewController.delegate = rsfm;
[appDelegate.splitViewController viewWillAppear:YES];
}
这是另一个,我从主视图的不同行加载另一个。这不会立即填充详细视图,而是在主视图中加载一个新的表视图。这也会导致 iPad 崩溃,但不会导致模拟器崩溃。
else if (indexPath.row == 6)
{
MemberBenefitsipad *benefits = [[MemberBenefitsipad alloc] initWithNibName:@"MemberBenefitsipad" bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:benefits animated:YES];
}
日志中显示的错误错误是:
2013-06-12 14:36:54.267 KFBNewsroom[12125:907] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </var/mobile/Applications/ED63F1DA-31C8-4FC1-81D7-A3DCE3186C98/KFBNewsroom.app> (loaded)' with name 'MemberBenefitsipad''
编辑:我解决了这个问题。我只需要将 xib 文件放在捆绑资源中。