【问题标题】:pushViewController and Split View Controller — any workaround?pushViewController 和拆分视图控制器——有什么解决方法吗?
【发布时间】:2015-03-14 08:17:32
【问题描述】:

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

我的一个选项卡是用作菜单的表格视图。我想从 didSelectRowAtIndexPath 推送一个拆分视图控制器,如下所示:

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

这会返回一个错误:Split View Controllers cannot be push to a Navigation Controller

我可以模态显示视图控制器,但这会隐藏我的标签栏并使我的界面更加复杂(一个不受欢迎的结果)

[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;

【问题讨论】:

    标签: ios uisplitviewcontroller


    【解决方案1】:

    拆分视图控制器旨在作为根对象呈现,而不是推送到层次结构中。

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

    【讨论】:

      猜你喜欢
      • 2017-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-04
      相关资源
      最近更新 更多