2016-08-22 65 views
1

我的VoiceOver行为存在问题,在我看来有UITableViewVoiceOver不专注于后退按钮

如果我回到ViewController VoiceOver跳转到先前选择的单元格,选择表格的单元格以触发segue。
在我的didSelectRowAtIndexPath中,我打电话tableView.deselectRowAtIndexPath(indexPath, animated: true)以防止单元格保持选定状态。

我尝试在viewDidAppear中发布UIAccessibilityLayoutChangedNotificationUIAccessibilityScreenChangedNotification,但没有任何变化。

所以我的问题是:这是VO的正确行为?
如何在视图出现时始终关注后退按钮?

回答

0

您是否通过了您想要关注的项目?如:

UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, self.navigationController.navigationItem.backBarButtonItem); 

否则viewDidAppear你可以遍历所有可见的单元格,并关闭辅助如果集中,然后将其立即回

for(UITableViewCell *cell in self.tableView.visibleCells) { 
    if (cell.accessibilityElementIsFocused) { 
     cell.isAccessibilityElement = NO; 
     dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ 
      cell.isAccessibilityElement = YES; 
     }); 
    } 
} 

绝对不是一个优雅的方法,但可能工作在一个捏。

+0

感谢这个建议,我尝试传递self.navigationController.navigationItem.backBarButtonItem,但它没有帮助。我最终禁用了viewController中0.1s所有视图的可访问性,然后重新启用它。 – lorenzoliveto