[英]UISplitViewController shows detail view first
我对iOS开发非常陌生。 在我的应用程序中,我有一个标签栏,在其中一个标签中,我有一个UISplitViewController。 我的问题是,当我转到选项卡时,它将首先显示“详细信息”视图。 然后,我必须单击“后退”按钮以获取主视图。 我发现另一个人在stackoverflow上遇到了这个问题,但是解决方案是在Objective-c中进行的,而我正在使用情节提要(不确定如何将类附加到其上),而且很快,所以这没有帮助。
在人像模式下使用ipad时,它也不起作用。 当我切换到横向时,它工作正常,但在纵向模式下仅显示黑屏(无后退按钮)。 任何帮助,将不胜感激。 谢谢。
我不确定您需要什么其他信息或希望我显示什么信息,所以如果我有遗漏,请告诉我。
调整后的appdelegate
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
let tabBarController = self.window!.rootViewController as! UITabBarController
let splitViewController = tabBarController.viewControllers![3] as! UISplitViewController
///////////////////Always visible property
splitViewController.preferredDisplayMode = .AllVisible
///////////////////
let navigationController = splitViewController.viewControllers[splitViewController.viewControllers.count-1] as! UINavigationController
navigationController.topViewController!.navigationItem.leftBarButtonItem = splitViewController.displayModeButtonItem()
splitViewController.delegate = self
return true
}
更新:最终解决了此问题。将UISplitViewController打开到Master View而不是Detail
我在项目中创建了一个示例SplitViewController,并在appdelegate中设置了属性。 这对我有用https://github.com/harsh62/stackoverflow_TestMasterDetailApp
splitViewController.preferredDisplayMode = .AllVisible
完整功能如下:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
let splitViewController = self.window!.rootViewController as! UISplitViewController
///////////////////Always visible property
splitViewController.preferredDisplayMode = .AllVisible
///////////////////
let navigationController = splitViewController.viewControllers[splitViewController.viewControllers.count-1] as! UINavigationController
navigationController.topViewController!.navigationItem.leftBarButtonItem = splitViewController.displayModeButtonItem()
splitViewController.delegate = self
return true
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.