Ios 包含的UISplitView未发送委托方法

Ios 包含的UISplitView未发送委托方法,ios,ipad,uisplitviewcontroller,Ios,Ipad,Uisplitviewcontroller,UISplitView具有以下委托方法,有助于在旋转期间修改布局: - (void)splitViewController:(UISplitViewController *)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController: (U

UISplitView
具有以下委托方法,有助于在旋转期间修改布局:

- (void)splitViewController:(UISplitViewController *)svc 
     willHideViewController:(UIViewController *)aViewController 
          withBarButtonItem:(UIBarButtonItem *)barButtonItem 
       forPopoverController: (UIPopoverController *)pc;

- (void)splitViewController:(UISplitViewController *)svc 
     willShowViewController:(UIViewController *)aViewController 
  invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem;
这些方法分别由
UISplitView
私有的方法调用,这些方法名为
\u viewControllerHiding:
\u updateMasterViewControllerFrame
。这两个都是从事件循环的顶部直接调用的,显然是延迟调用

但是,如果我将自己的视图控制器放置为窗口的根(您不能将拆分视图控制器放置在导航控制器中),并将拆分视图放置在它的从属位置,则不会适当地发送委托方法。(实际上,一个在
viewDidLoad
上发送,但在旋转时没有发送。)主视图仍然会隐藏,但没有代理喜欢帮助布局(管理弹出框/条形图项目)

我已尝试将以下视图控制器方法转发到包含的拆分视图,但它们不会触发它

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation;
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation 
                                duration:(NSTimeInterval)duration;
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
                                         duration:(NSTimeInterval)duration;

有人知道如何启动这些UISplitView委托方法吗?最好不是私有API。

看看,您会发现拆分视图控制器不应该包含在任何其他类型的视图控制器中。您在自己的视图控制器中安装了一个,这违反了这一规则,因此它不能正常工作也就不足为奇了。

是的,我有点推动了设计规范,谢天谢地,他们对5.0i的容器控制器进行了抽象/形式化,重新设计了代码,放置了一个“管理器”负责调出窗口的根控制器(并在它们之间进行合理转换)——管理器与视图/视图控制器层次结构没有任何关系,只是操纵它