selectedViewcontroller не работает для tabbarcontroller в tvOS 10
У меня есть rootviewcontroller
который расширяется UITabBarController
, У него есть несколько детей viewcontrollers
,
Все, что я хочу, это программно выбрать 2-й /3-й /.. viewcontroller
с первого. Я использовал
`.selectedViewController`, `.selectedIndex`, `.navigationController.tabBarController.tabBar.selectedItem = ...`
и все вариации на эту тему. Я замечаю следующее при использовании
`tabBarController.selectedViewController = tabBarController.viewControllers?[1]`
tabBarController
отображает 2-й viewcontroller
на секунду, но возвращается к 1-му viewcontroller
, У меня есть предчувствие, что это двигатель фокуса, но я потерян в этот момент.
2 ответа
Не совсем уверен, связано ли это, но у меня было приложение для tvOS, в котором у меня было несколько UIViewController в UITabBarController, и я перестал иметь возможность выбирать их в панели вкладок, и после перехода на tvOS 10 панель вкладок исчезла.
Оказывается, проблема в том, что на этих экранах не было никаких фокусируемых элементов (кнопок и т. Д.), Поэтому мне пришлось создать объекты подкласса для некоторых видов и сделать canBecomeFocused
возвращаемое свойство "true".
см.: Как сделать фокусировку UIView с помощью механизма фокусировки на Apple TV
Вы должны реализовать вторую вещь, чтобы они выглядели сфокусированными, но если вы на самом деле этого не хотите, вы можете пропустить это.