Ipad TabBar中的多个UISplitViewController不会全部通知旋转事件

Ipad TabBar中的多个UISplitViewController不会全部通知旋转事件,ipad,uisplitviewcontroller,Ipad,Uisplitviewcontroller,我有一个包含3个UISplitiviewController的选项卡栏应用程序。除了一个场景外,其他一切都很好: 我将ipad置于表1的横向位置。我点击tab3,然后旋转ipad的肖像模式。我点击tab1,它在纵向模式下显示良好,我很高兴 我现在回到横向位置 我再次单击选项卡3,此时splitView控制器仍以“纵向模式”显示。从未调用tab3中splitviewController的委托 是否有办法强制在“ViewWillDisplay”中旋转此splitViewController 在对事件

我有一个包含3个UISplitiviewController的选项卡栏应用程序。除了一个场景外,其他一切都很好:

我将ipad置于表1的横向位置。我点击tab3,然后旋转ipad的肖像模式。我点击tab1,它在纵向模式下显示良好,我很高兴

我现在回到横向位置

我再次单击选项卡3,此时splitView控制器仍以“纵向模式”显示。从未调用tab3中splitviewController的委托


是否有办法强制在“ViewWillDisplay”中旋转此splitViewController

在对事件冒泡进行深入分析后,旋转事件似乎没有转发到隐藏的SplitView。。。 如果不使用隐藏的API,就无法转发这些事件

很多开发人员都有同样的问题,而且splitView中的事件管理的这个实现已经作为一个bug报告给了apple,尽管指导原则是只使用一个添加到应用程序根视图中的splitView。

您可能会发现git很有用

它只是
UISplitViewController
的一个简单子类,它会收到旋转更改的通知

或者,是一个更强大的替代品,增加了很多功能

希望能有帮助


顺便说一句,我的类(@zebs)本身并不依赖于隐藏的api,我会通过直接请求一个_属性来快速获取popover按钮,但如果你选择了,你可以将其注释掉,并取消注释在视图层次结构中移动的位,从而将按钮拉远。同样的最终结果,两者都令人不安地脆弱,但都有效(目前)。我要补充一点,不是每个人都能很好地使用IntelligentSplitviewController,但它“对我来说”非常好。如果我的班级破产或被史蒂夫·奥叔叔取缔,马特的全面重新实施是我的下一站。我有一个更简单的选择,看看我的答案。