当我尝试在我的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]; } 返回YES; }
这里怎么可能是错误/或
- (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;}
感谢您的帮助和快速解答
答案 0 :(得分:2)
来自XCode项目导航器......
要修复此问题,请将其更改为故事板的 iPhone 版本。 (例如“MainStoryboard_ iPhone ”)
<强>为什么吗
创建通用应用时,会为iPhone 和 iPad 创建部署信息。 如果您遇到此错误,则可能已将目标部署配置为使用错误的故事板。由于模拟器认为它是iPhone,它使用iPhone部署,但问题是iPhone部署使用iPad故事板进行初始化,而iPad故事板包含 UISplitViewController ,无法在iPhone上运行 - 因此错误。
答案 1 :(得分:1)
UISplitViewController是仅为iPad而非iPhone制作的组件。
由于您的应用程序是通用应用程序,因此您正在谈论的条件(“UIUserInterfaceIdiomPad”)检查设备是iPad还是iPhone。因此必须。
答案 2 :(得分:0)
使用UISplitViewController类无法实现此目的。如果您查看Apple reference文档,它会清楚地说明UISplitViewController是一个特定于iPad的视图控制器。