Its*_*ing 9 uitabbarcontroller uisplitviewcontroller ios8
我试图通过在MasterView的UINavigationController前面添加一个UITabbarController来扩展默认的Apple MasterDetail模板,所以有一个这样的结构:
UISplitViewController(Master)> UITabbarController> UINavigationController> UITableViewController
但是如果我运行App,在更改应用程序(didFinishLaunchingWithOptions)以使用正确的ViewController之后,并尝试执行ShowDetails Segue,则会在iPhone上以模态方式呈现DetailsView.另一方面,iPad版本正在按预期工作.我忘记做什么了?或者我该如何解决?
我想出了如何将细节放到master的UINavigationController上,而不是通过UITabBarController以模态方式呈现它.
使用UISplitViewControllerDelegate方法
- splitViewController:showDetailViewController:sender:
Run Code Online (Sandbox Code Playgroud)
如果UISplitViewController折叠,请获取主控导航控制器并将详细视图推送到此导航控制器:
- (BOOL)splitViewController:(UISplitViewController *)splitViewController
showDetailViewController:(UIViewController *)vc
sender:(id)sender {
NSLog(@"UISplitViewController collapsed: %d", splitViewController.collapsed);
// TODO: add introspection
if (splitViewController.collapsed) {
UITabBarController *master = (UITabBarController *) splitViewController.viewControllers[0];
UINavigationController *masterNavigationController = (UINavigationController *)master.selectedViewController;
// push detail view on the navigation controller
[masterNavigationController pushViewController:vc animated:YES];
return YES;
}
return NO;
}
Run Code Online (Sandbox Code Playgroud)
只是为了更新上面的答案.由于您无法再推送导航控制器,因此您必须推送其顶视图控制器.
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
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2345 次 |
| 最近记录: |