ios - UISplitViewController 首先显示详细 View

标签 ios swift uisplitviewcontroller

我对 iOS 开发非常陌生。在我的应用程序中,我有一个选项卡栏,在其中一个选项卡中我有一个 UISplitViewController。我的问题是,当我转到选项卡时,它首先显示详细信息 View 。然后我必须单击后退按钮才能获得主视图。我在 stackoverflow 上发现另一个人遇到了这个问题,但解决方案是在 Objective-c 中,并且我正在使用 Storyboard (不知道如何将类附加到它)和 swift,所以这没有帮助。

在纵向模式下使用 ipad 时,它也不起作用。当我切换到横向时,它工作正常,但在纵向模式下仅显示黑屏(没有后退按钮)。任何帮助,将不胜感激。谢谢。

我不确定您还需要哪些其他信息或希望我显示什么,所以如果我遗漏了某些内容,请告诉我。

调整后的应用程序委托(delegate)

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
}

更新:最终按照此答案修复 Open UISplitViewController to Master View rather than 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 - set always visible master controller when

关于ios - UISplitViewController 首先显示详细 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38886180/

相关文章:

iphone - 如何强制 UIWebView 读取 NSHTTPCookie

iphone - 我想在加载新图像时删除 tableviewcell 中的图像。在 iOS 中

xcode - 在后台加载 gif 图像?

ios - UISearchController 中的 SearchBar 委托(delegate)不起作用

ipad - 让 Interface Builder 在 SplitViewControllers DetailView 中布局我的内容

objective-c - 为什么升级到 Xcode 4.2 后 MKAnnotation 显示警告

iphone - 从 Facebook API iOS 的另一个 View Controller 调用方法

ios - UIView 数组

ios - 在 Split View Controller iOS8 Objective C 中从右侧打开主视图

ios - UISplitViewController iPad 行为