我有一个针对iOS8的应用程序,初始视图控制器是UISplitViewController.我使用故事板,以便它为我实例化一切.
由于我的设计,我需要SplitViewController在iPhone上以纵向模式显示主视图和详细视图.所以我正在寻找一种方法来覆盖这个UISplitViewController的特征集合.
我发现我可以使用
override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator!) { ... }
Run Code Online (Sandbox Code Playgroud)
但是,遗憾的是,只有方法可以覆盖子控制器特征集合:
setOverrideTraitCollection(collection: UITraitCollection!, forChildViewController childViewController: UIViewController!)
Run Code Online (Sandbox Code Playgroud)
我不能在我的UISplitViewController子类中为self做到这一点.
我查看了Apple 的示例应用程序Adaptive Photos.在这个应用程序作者中,作为root使用特殊的TraitOverrideViewController,并在他的viewController setter中使用一些魔法来使它全部工作.
这对我来说太可怕了.是否有任何方法可以覆盖特征?或者如果没有,我怎么能设法使用与故事板相同的黑客?换句话说,如何以root用户身份注入一些viewController只是为了处理带故事板的UISplitViewController的特征?