collapseSecondaryViewController只调用一次

时间:2015-11-30 02:37:05

标签: ios swift uisplitviewcontroller

我尝试按照“iOS 8 by tutorial”中的步骤实现UISplitViewController。

如果我在yes方法中返回splitViewController:collapseSecondaryViewController:ontoPrimaryViewController:,则分区视图控制器将仅显示其主视图控制器中的内容。

但是在我的项目中,拆分视图控制器在折叠界面中显示主视图控制器和辅助视图控制器,无论我在此方法中返回true false。最有线的是这个方法只在应用程序开始运行时调用一次。

这是我自定义的SplitViewController,它是UISplitViewController的子类:

import UIKit

class SplitViewController: UISplitViewController, UISplitViewControllerDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()
        self.delegate = self
    }

    // MARK:- UISplitViewControllerDelegate
    func splitViewController(splitController: UISplitViewController, collapseSecondaryViewController secondaryViewController: UIViewController, ontoPrimaryViewController primaryViewController: UIViewController) -> Bool {

        // We don't want anything to happen. Say we've dealt with it
        return true
    }
}

1 个答案:

答案 0 :(得分:0)

我发现我需要在ViewDidLoad中添加“ self.preferredDisplayMode = .primaryOverlay”。

override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.
    self.delegate = self
    self.preferredDisplayMode = .primaryOverlay
 }

preferredDisplayMode还有其他一些选项,可以自定义可以用来获得喜欢的外观和感觉的初始行为。

请注意,这是针对iPhone的“紧凑宽度”。还可以在iPad上进行测试,因为它的行为有所不同(横向与纵向)。

相关问题