1

当我尝试在我的 iPad 6.0 模拟器中使用我的应用程序时遇到问题,每次都遇到同样的问题 *由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“仅在 UIUserInterfaceIdiomPad 下运行时才支持 UISplitViewController”*

我真的不知道为什么

-(BOOL)应用程序:(UIApplication *)应用程序 didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){ UISplitViewController spvc = (UISplitViewController ) self.window.rootViewController; spvc.delegate = [spvc.viewControllers lastObject]; } 返回是;}

这里怎么可能是错误/或在哪里

- (void) :(UISplitViewController *)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)pc {

barButtonItem.title = @"Master";
NSMutableArray *items = [[self.toolbar items]mutableCopy];
[items insertObject:barButtonItem atIndex:0];
[self.toolbar setItems:items animated:YES];
self.masterPopOverController = pc;}


-(void) splitViewController:(UISplitViewController *)svc willShowViewController:(UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem{

NSMutableArray *items = [[self.toolbar items]mutableCopy];
[items insertObject:barButtonItem atIndex:0];
[self.toolbar setItems:items animated:YES];
self.masterPopOverController = nil;}

感谢您的帮助和快速解答

4

3 回答 3

2

从 XCode 项目导航器...

  1. 点击你的项目
  2. 单击位于“目标”下的应用名称
  3. 单击右上角的“摘要”选项卡
  4. 查看标有“iPhone/iPod 部署信息”的部分找到主故事板”如果主故事板在列表框中 显示类似“MainStoryboard_iPad ”的内容,这就是问题所在。

要修复它,请将其更改为故事板的iPhone版本。(例如“MainStoryboard_iPhone

为什么?

创建通用应用程序时,它会为 iPhoneiPad创建部署信息。如果您遇到此错误,您可能已将目标部署配置为使用错误的故事板。由于模拟器认为它是 iPhone,它使用 iPhone 部署,但问题是 iPhone 部署说使用 iPad 故事板进行初始化,而 iPad 故事板包含一个UISplitViewController不能在 iPhone 上运行 - 因此出现错误。

于 2013-09-07T06:10:29.523 回答
1

UISplitViewController 是一个只为 iPad 而不是 iPhone 的组件。

由于您的应用程序是通用应用程序,因此您正在谈论的条件(“UIUserInterfaceIdiomPad”之一)检查设备是 iPad 还是 iPhone。因此是必须的。

于 2012-12-14T13:51:44.820 回答
0

您无法使用 UISplitViewController 类来实现这一点。如果您查看Apple 参考文档,它清楚地指出 UISplitViewController 是 iPad 特定的视图控制器。

于 2012-12-14T14:33:02.517 回答