私のviewControllerに私はtableView
を設定するためにNSFetchedResultsController
を持っています。私はその後、NSFetchedResultsController's
didChange AnyObject
コールバックでそれをプリントアウトし、変数に現在の時間を節約していますviewDidLoad()
で:viewControllerが正しく削除されていませんか?
class MyViewController: UIViewController, NSFetchedResultsControllerDelegate {
var date: Date!
var fetchedResultsController: NSFetchedResultsController<Event>!
override func viewDidLoad() {
super.viewDidLoad()
date = Date()
}
func controller(_ controller: NSFetchedResultsController<NSFetchRequestResult>, didChange anObject: Any, at indexPath: IndexPath?, for type: NSFetchedResultsChangeType, newIndexPath: IndexPath?) {
switch type {
case .insert:
feedTable.insertRows(at: [newIndexPath!], with: .fade)
print(date)
default:
break
}
}
私は、このビューを離れるときに、このコールバックが2回呼び出され戻ってきて、日付ことに気づきました私はビューにあった最初の時からのプリントだけでなく、新しいものされています
2017年5月14日夜06時29分42秒0000
2017年5月14日午後06時30分01秒+0000
私はこのような別々の機能でビューを残している:
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: "HomePage") as? HomeVC
controller?.managedObjectContext = self.managedObjectContext
self.present(controller!, animated: true, completion: nil)
はなぜこのMyViewController
は、私はそれを離れた後も固執して戻ってくるように見えるのでしょうか?私はそれを適切に除去しないままにしているのですか?
'viewDidLoad'メソッドで' super'を呼び出すことを忘れないでください。 –
私はちょうどこの質問にそれを含めていません – MarksCode
質問を更新する必要があります。 :) –