【发布时间】:2011-06-09 08:05:01
【问题描述】:
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 的私有方法调用,名为_viewControllerHiding: 和_updateMasterViewControllerFrame。这两个都是直接从事件循环的顶部调用的,显然是延迟调用。
但是,如果我将自己的视图控制器放置为窗口的根(您不能将拆分视图控制器放置在导航控制器中),并将拆分视图从属于它,则无法正确发送委托方法。 (实际上,在viewDidLoad 上发送了一个,但在旋转时没有发送。)主视图的隐藏仍然存在,但没有代表喜欢帮助布局(管理弹出框/栏项目)。
我已尝试将以下视图控制器方法转发到包含的拆分视图,但它们没有触发它。
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation;
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
duration:(NSTimeInterval)duration;
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
duration:(NSTimeInterval)duration;
任何人都知道如何让这些 UISplitView 委托方法触发?最好不要私有 API。
【问题讨论】:
标签: ios ipad uisplitviewcontroller