在UISplitView

时间:2017-04-26 08:01:52

标签: ios swift uitabbarcontroller uisplitviewcontroller

我知道之前曾问过这个问题,但是没有答案对我有用,所以如果出现一些新想法,我会再次提出这个问题。

我在通用应用程序中有UISplitView控制器,在主视图控制器中我需要TabBarController,就像这样

enter image description here

我的问题是,使用这种配置,当我点击单元格时,DetailViewController确实显示,但它从底部而不是从右侧滑动,并且它没有后退按钮。这让我相信不在正确的导航堆栈上。

我试过但有些事情没有用(我不接受答案!)

  1. 在TabBarController之前放置NavigationController:
  2. enter image description here

    此解决方案存在两个主要问题。首先是转换时导航栏右侧的一个非常难看的黑色阴影。第二是在第二次单击单元格后,后退按钮停止工作。

    1. 添加代码

      func splitViewController(splitViewController: UISplitViewController, showDetailViewController vc: UIViewController, sender: AnyObject?) -> Bool {
      if splitViewController.collapsed {
             let tabBarController = splitViewController.viewControllers.first as! UITabBarController
             let selectedNavigationViewController = tabBarController.selectedViewController as! UINavigationController
      
             // Push view controller
             var viewControllerToPush = vc
             if let navController = vc as? UINavigationController {
                 viewControllerToPush = navController.topViewController
             }
      
        selectedNavigationViewController.pushViewController(viewControllerToPush, animated: true)
      
             return true
         }
      
         return false
      }
      
    2. 这对我没有任何帮助,但是如果我多次旋转设备,它会给我一个错误:

      <Error>: CGImageCreate: invalid image size: 0 x 0.
      

      我不相信这不可能做到。主视图和详细视图可以是任何View控制器类,那么为什么tabbarviewcontroller不起作用?

0 个答案:

没有答案