配音:ViewWillAppear中的UIAccessibilityLayoutChangedNotification未在每次加载视图时将焦点设置在导航栏标题上

时间:2018-02-22 19:05:51

标签: ios uitabbarcontroller uinavigationitem voiceover

过去两天我一直在努力解决这个问题。 我有一个UITabBarController,每个标签在视图中都有一个UINavigationController。 当我加载标签栏控制器语音正在正确读取标签视图导航栏标题。它第一次加载视图时工作。(看起来这是默认行为。)但是当我再次选择标签时,画外音正在读取标签信息,但没有将焦点设置到导航栏标题。有没有办法在每次加载选项卡视图时将其设置为专注于标题。 我尝试使用

override func viewWillAppear(_ animated: Bool) {
   super.viewWillAppear(animated)     

   UIAccessibilityPostNotification 
            (UIAccessibilityLayoutChangedNotification, self.navigationItem.titleView)
}

我还尝试将标签创建为标题视图,并将其设置为NavigationItem

没有任何帮助。

非常感谢任何建议。

三江源。

1 个答案:

答案 0 :(得分:0)

尝试不在viewWillAppear

中的viewDidAppear
- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, self.navigationItem.titleView);
    });
}