我试图通过在MasterView的UINavigationController前面添加一个UITabbarController来扩展默认的Apple MasterDetail模板,所以有这样的结构:
但是,如果我运行该应用程序,则在将应用程序(didFinishLaunchingWithOptions)更改为使用正确的ViewController之后,尝试执行ShowDetails Segue在iPhone上以Modular形式呈现的DetailsView ist。另一方面,iPad版本正在按预期运行。
我忘了做什么?或者我该如何解决?
最佳答案
只是为了更新上面的答案。由于您无法再推送导航 Controller ,因此必须改为推送其顶 View Controller 。
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
}
关于uitabbarcontroller - UISplitviewController Master中的iOS8 TabbarController,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25580981/