在视图外观上启用 UISplitViewController 的 UIPopoverController

Posted

技术标签:

【中文标题】在视图外观上启用 UISplitViewController 的 UIPopoverController【英文标题】:Enable UISplitViewController's UIPopoverController on view appearance 【发布时间】:2014-01-22 13:20:43 【问题描述】:

当使用UISplitViewController时,我可以在设备纵向时启用UIPopoverController,并通过以下方法禁用横向:

// Popover is accessed with a swipe to right gesture
- (void)splitViewController:(UISplitViewController *)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)pc 
  _popover = pc;


- (void)splitViewController:(UISplitViewController *)svc willShowViewController:(UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem 
  _popover = nil;

但是,如果用户在加载视图时已经处于纵向状态,则不会启用弹出框,除非用户将设备旋转到横向,然后再转回纵向。我想知道如何在视图出现时从一开始就启用它。

【问题讨论】:

【参考方案1】:

我见过的最常见的问题是您可能设置 splitViewController.delegate 太晚了,例如在“ViewDidLoad”中。我通常会在 AppDelegate 的 didFinishLaunchingWithOptions 部分或您的 detailViewController 的 awakeFromNib 方法中看到它实现。

【讨论】:

以上是关于在视图外观上启用 UISplitViewController 的 UIPopoverController的主要内容,如果未能解决你的问题,请参考以下文章

Autolayout UILabel 高度在第二个视图外观上发生变化

容器视图控制器不转发外观方法

为视图控制器根视图设置外观代理

CMDIChildWnd在Windows-10上的外观和感觉

Swift:如何在地图视图上启用和禁用注释?

汉堡菜单/侧边菜单外观错误