概述
当使用UISplitViewController
并随后显示一个新的明细控制器,或将另一个VC推入该明细控制器的导航堆栈时,将激活主控制器上的导航项。
示例1
比方说,主控制器的标题为“设置”,并且包含具有多行的表格视图,在点击时,将使用showDetailViewController
将新的视图控制器加载到详细信息窗格中。详细信息窗格已正确更新,但VoiceOver跳到了主窗格的导航项,因此我们听到“设置”。
现在,我们可以在显示的视图控制器的UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, self.view)
中调用viewDidAppear
,但是稍后我们仍会听到“设置”。将我们将可访问性通知发布到viewDidLoad
或viewWillAppear
的位置没有任何区别。
示例2
类似地,如果我们将另一个视图控制器推到详细信息窗格中任何控制器的导航堆栈上,则将再次激活“设置”。
现在,“ iOS设置”(在iOS 11上)应用将对此进行不同的处理。当您在列表中选择一个项目时,将正确读取详细信息窗格中视图中的第一个单元格,而不会读取“设置”导航项目。我该如何模仿这种行为?