コードの外観はわかりませんが、テーブルがアクティブに更新されているかどうかを追跡するプロパティを作成できます。それが更新したり、いない場合は、あなたのNSFetchedResultsControllerDelegate
セットに続いて
override var preferredFocusedView: UIView?{
get {
if updating {
return self.tableView.cellForRowAtIndexPath(NSIndexPath(forRow: 0, inSection: 0))
}
return super.preferredFocusedView
}
}
:
var tableViewIsUpdating = false
あなたが前に通常のフォーカスをしたいかどうかを判断するためか、テーブルビューの最初の行を返すためにこれを使用することができます
func controllerWillChangeContent(controller: NSFetchedResultsController){
self.tableViewIsUpdating = true
}
func controllerDidChangeContent(controller: NSFetchedResultsController) {
self.setNeedsFocusUpdate()
self.updateFocusIfNeeded()
self.updating = false
}
フォーカスをプログラムで更新する方法については、hereを参照してください。