我知道之前曾问过这个问题,但是没有答案对我有用,所以如果出现一些新想法,我会再次提出这个问题。
我在通用应用程序中有UISplitView控制器,在主视图控制器中我需要TabBarController,就像这样
我的问题是,使用这种配置,当我点击单元格时,DetailViewController确实显示,但它从底部而不是从右侧滑动,并且它没有后退按钮。这让我相信不在正确的导航堆栈上。
我试过但有些事情没有用(我不接受答案!)
此解决方案存在两个主要问题。首先是转换时导航栏右侧的一个非常难看的黑色阴影。第二是在第二次单击单元格后,后退按钮停止工作。
添加代码
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
}
这对我没有任何帮助,但是如果我多次旋转设备,它会给我一个错误:
<Error>: CGImageCreate: invalid image size: 0 x 0.
我不相信这不可能做到。主视图和详细视图可以是任何View控制器类,那么为什么tabbarviewcontroller不起作用?