【tvOS】UITextFieldからUIButtonへのFocus


問題

UITextFieldでテキストを入力し、キーボード「完了」ボタンを押すと、
元の画面に戻りますが、入力したUITextFieldをFocusしています。
望み動きは元の画面に戻った際、UIButtonをFocusすること。

解決

input.swift
  ...
  @IBOutlet weak var finishBtn: UIButton!
  @IBOutlet weak var descriptionTxt: UITextField!
  ...

  var isfinished = false

  override var preferredFocusEnvironments: [UIFocusEnvironment] {
        if (self.isfinished){
            self.isfinished = false
            return [self.finishBtn]
        }else{
            return [self.descriptionTxt]
        }

  }

  override func didUpdateFocus(in context: UIFocusUpdateContext, with coordinator: UIFocusAnimationCoordinator) {
        if context.previouslyFocusedView == nil && context.nextFocusedView == self.descriptionTxt{
            //キーワード画面から戻る
            self.isfinished = true
            self.setNeedsFocusUpdate()
            self.updateFocusIfNeeded()

        }

   }