У меня ошибка перехода на платформе tvOS: когда я дважды нажимаю кнопку «ввод» на пульте дистанционного управления, у меня двойной переход к следующему контроллеру просмотра. Я исправил эту проблему на IOS следующим образом:
class ViewController: UIViewController, UINavigationControllerDelegate {
var segueInProgress: Bool?
override func viewDidLoad() {
super.viewDidLoad()
navigationController?.delegate = self
}
override func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool {
return segueInProgress == false
}
func navigateShow(to viewController: UIViewController, sender: Any? = self) {
if self.segueInProgress == true { return }
if let navigationController = self.navigationController {
navigationController.show(viewController, sender: sender)
} else {
self.show(viewController, sender: sender)
}
}
func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) {
// Or like this: self.view.isUserInteractionEnabled = false
self.segueInProgress = true
}
func navigationController(_ navigationController: UINavigationController, didShow viewController: UIViewController, animated: Bool) {
self.segueInProgress = false
// Or like this: self.view.isUserInteractionEnabled = true
}
}
Но на tvOS это решение не работает, и я не знаю почему. Когда я делаю двойной щелчок для быстрого, у меня есть несколько переходов. Пожалуйста, помогите
let detailVC: DetailViewController = DetailViewController.instantiateViewController()
navigateShow(to: detailVC)