Отключение фокуса VoiceOver для UICollectionView для первого входа?

Im использует VoiceOver и имеет проблему с UICollectionView. У меня есть начальный экран с десятью кнопками, каждый из которых соединяется с одной из десяти ячеек в представлении коллекции. Вид коллекции фактически представляет собой полный размер экрана, и каждая ячейка содержит контроллер детского представления. Все это отлично работает при выключенном VoiceOver, но когда он включается, активация одной из кнопок в середине набора всегда приводит к тому, что представление коллекции появляется в первую ячейку, даже если я не нажал первую кнопку. Я думаю, это связано с тем, что "фокус" VoiceOver переходит к первому элементу, который он видит (т.е. К первой ячейке).

Ive попытался использовать UIAccessibilityScreenChangedNotification и то же самое с макетом с аргументом соответствующей ячейки, но это не имеет никакого значения, ее не выскользнуть в мой требуемый элемент и всегда появляется в первой ячейке коллекции.

Что я могу делать неправильно здесь?

Я добавляю фрагмент, это называется в viewDidLayoutSubviews и отлично работает для фактической прокрутки, если VoiceOver выключен. Но как только VO включен, он ломается.

if (self.initialIndexPath) {
    [self.collectionView scrollToItemAtIndexPath:self.initialIndexPath atScrollPosition:UICollectionViewScrollPositionNone animated:NO];
    UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, [self.collectionView cellForItemAtIndexPath:self.initialIndexPath]);
}

Это работает абсолютно нормально, если вы фактически фокусируетесь на ячейке, но часть VoiceOver полностью игнорируется, уведомление не смещает фокус на эту правильную ячейку вообще, это всегда первый элемент в первой ячейке.

Также следует отметить, что сами ячейки НЕ являются accessibilityElements и не должны быть, они реализуют протокол UIAccessibilityContainer, и поэтому ярлык заголовка каждой ячейки будет там, где я хочу, чтобы фокус закончился.

Ответы