0

我创建了一个标签栏应用程序。在第一个项目上,是一个带有 Master 和 Detail 的 Split View Controller。运行应用程序时,我可以在页面上看到标签栏,但是它显示了我的详细信息页面。为什么它不默认为母版页?

我研究了一些答案,但没有运气。

SplitViewController.swift

import UIKit


class SplitViewController: UISplitViewController,
UISplitViewControllerDelegate {

override func viewDidLoad() {
    self.delegate = self
    self.preferredDisplayMode = .allVisible
}

func splitViewController(
    _ splitViewController: UISplitViewController,
    collapseSecondary secondaryViewController: UIViewController,
    onto primaryViewController: UIViewController) -> Bool {
    // Return true to prevent UIKit from applying its default behavior
    return true
}
4

1 回答 1

1

仅供参考,以防有人遇到同样的问题。

我必须使用我的 Master-Detail SplitViewController 应用程序(没有标签栏)并执行以下操作:

  1. 添加标签栏控制器。
  2. 将选项卡栏控制器的绑定连接到拆分视图控制器,作为视图控制器。
  3. 修改 AppDelegate.swift

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        let tabBarViewController = self.window!.rootViewController as! UITabBarController
        print(tabBarViewController.viewControllers?.count)
        var splitViewController:UISplitViewController? = nil
        for viewController in tabBarViewController.viewControllers! {
            if viewController.title == "Master" {
                splitViewController = viewController as? UISplitViewController
            }
        }
        return true
    }
    
  4. 将选项卡栏控制器设置为初始视图控制器。

希望这可以帮助。谢谢!

于 2017-10-10T18:12:31.103 回答