pushViewController和Split View Controller - 任何解决方法?

时间:2015-01-15 19:55:14

标签: ios uisplitviewcontroller

所以,我正在编写一个通用应用程序,而在iOS 8中,创建拆分视图以确保所有内容都能正确显示在iPhone和iPad上似乎是最简单的。我的应用中占主导地位的UI组件是一个标签栏。

我的一个标签是一个充当菜单的tableview。我想从didSelectRowAtIndexPath推送拆分视图控制器,如下所示:

[self.navigationController pushViewController:ytSplitViewController animated:YES];

这将返回错误:无法将拆分视图控制器推送到导航控制器

我可以以模态方式呈现视图控制器,但这会隐藏我的标签栏并使我的界面更复杂(不良结果)

[self.navigationController presentViewController:ytSplitViewController animated:YES completion:nil];

我可以采用一种解决方法来在我的UI范例中展示我的SplitViewController吗?更清楚的是,我可以使用不同的方法实际推送分割视图​​控制器吗?

如果它是相关的,这就是我创建分割视图的方式:

YTTableViewController *ytTableViewController = [YTTableViewController new];
UINavigationController *ytNavigationController = [[UINavigationController alloc] initWithRootViewController:ytTableViewController];
YTDetailViewController *ytDetailViewController = [YTDetailViewController new];
UINavigationController *ytDetailNavigationController = [[UINavigationController alloc] initWithRootViewController:ytDetailViewController];
NSArray *ytViewArray = [NSArray arrayWithObjects:ytNavigationController, ytDetailNavigationController, nil];
UISplitViewController *ytSplitViewController = [UISplitViewController new];
ytSplitViewController.viewControllers = ytViewArray;
ytSplitViewController.delegate = ytDetailViewController;

1 个答案:

答案 0 :(得分:5)

拆分视图控制器应表示为根对象,而不是在层次结构中推送。

当然,您可以通过使用视图控制器包含来欺骗它。创建UIViewController子类,将拆分视图控制器添加为子控制器,然后推送父控制器。这应该有用。