仅在UIUserInterfaceIdiomPad下运行时才支持iPhone的UISplitViewController

时间:2014-02-26 23:19:22

标签: ios objective-c uitableview uisplitviewcontroller landscape

我有一个带有行的UITableView,当你点击每一行时你会看到详细视图,我想要这个用于iPhone, 如果我旋转设备并从列表中选择我的行,我必须查看描述。(我的意思是在左边我必须有我的行和在我的详细视图中)将设备旋转回垂直并隐藏详细视图

我使用了splitViewController,但是我有一个错误,请你检查我的代码并告诉我这里有什么问题?

提前致谢!

这是代码

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary 
*)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
ViewController *view = [[ViewController alloc]     initWithNibName:@"ViewController" 
bundle:nil];
_nav = [[UINavigationController alloc]  initWithRootViewController:view];
//
MattersDetailView *detailVC = [[MattersDetailView alloc] initWithNibName:@"MattersDetailView"
bundle:nil];
_nav = [[UINavigationController alloc]  initWithRootViewController:detailVC];

[[UINavigationBar appearance] setBarTintColor:[self colorWithHexString:@"ecd555"] ];

splitViewController =[[UISplitViewController alloc] init];
splitViewController.viewControllers = @[view,detailVC];
self.window.rootViewController = splitViewController;



self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}

然后将此方法添加到viewController .m文件

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
return YES;
}

但我有这个错误

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason:   
'UISplitViewController is only supported when running under UIUserInterfaceIdiomPad'

2 个答案:

答案 0 :(得分:1)

阅读UISplitViewController的文档。它只能用于iPad应用程序,而不能用于iPhone应用程序。

您需要删除拆分视图控制器并将其替换为其他内容。

答案 1 :(得分:0)

  

我有 UITableView,行,当您点击 时, <强烈的>详细信息视图,我希望这能用于iPhone。

您所追求的行为通常在iPhone上的处理方式不同,因为屏幕较小。如上所述,它与iPhone无法真正兼容。

转换到详细视图要么反映导航的简单尝试,要么反映简陋的细节视图。

如果它是导航你就是在追求。抽屉导航菜单很受欢迎。这是一个适用于Storyboard和iOS7的程序,并包含一个教程。 AppCoda SlideNavMenu

如果它只是基于使用单元格触摸作为输入的转换,我认为最好的方法是使用主要详细信息模板创建一个新项目(假设您正在使用Xcode5),该模板可以很好地复制此功能。

希望这会有所帮助。