Swift 双转换错误tvOS
我在tvOS平台上有转换错误:当我按遥控器上的“回车”按钮两次时,我就有了到下一个视图控制器的双重转换。我在ios上解决了这个问题,如下所示:Swift 双转换错误tvOS,swift,tvos,Swift,Tvos,我在tvOS平台上有转换错误:当我按遥控器上的“回车”按钮两次时,我就有了到下一个视图控制器的双重转换。我在ios上解决了这个问题,如下所示: class ViewController: UIViewController, UINavigationControllerDelegate { var segueInProgress: Bool? override func viewDidLoad() { super.viewDidLoad() nav
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)
您可以在按下按钮后禁用该按钮,以防止用户重复按下该按钮,并确保如果您需要担心状态返回到ViewController,则会在ViewController上重新启用该按钮。是否有其他代码触发
navigateShow()
功能?你怎么称呼它?我在描述的末尾加上了。我尝试添加一些静态变量及其工作机制。但我不知道为什么这不是一个灵活的建议。它还可以生成大量额外的代码。