繁体   English   中英

UISplitViewController首先显示详细信息视图

[英]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
}

参考: UISplitViewController-在以下情况下设置始终可见的主控制器

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM