fetchedResultController delegate set nil when view disappear

This commit is contained in:
Chris Li 2016-09-18 15:33:26 -04:00
parent bc443aa98d
commit 82de6d0707
5 changed files with 26 additions and 4 deletions

View File

@ -39,9 +39,19 @@ class CloudBooksController: UITableViewController, NSFetchedResultsControllerDel
override func viewWillAppear(animated: Bool) { override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated) super.viewWillAppear(animated)
tabBarController?.navigationItem.rightBarButtonItem = UIBarButtonItem(imageNamed: "LanguageFilter", target: self, action: #selector(CloudBooksController.showLanguageFilter)) tabBarController?.navigationItem.rightBarButtonItem = UIBarButtonItem(imageNamed: "LanguageFilter", target: self, action: #selector(CloudBooksController.showLanguageFilter))
if fetchedResultController.delegate !== self {
fetchedResultController.delegate = self
tableView.reloadData()
}
refreshAutomatically() refreshAutomatically()
} }
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
tabBarController?.navigationItem.rightBarButtonItem = nil
fetchedResultController.delegate = nil
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
guard let identifier = segue.identifier else {return} guard let identifier = segue.identifier else {return}
switch identifier { switch identifier {

View File

@ -36,14 +36,18 @@ class DownloadTasksController: UITableViewController, NSFetchedResultsController
override func viewWillAppear(animated: Bool) { override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated) super.viewWillAppear(animated)
tabBarController?.navigationItem.rightBarButtonItem = nil
timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: #selector(DownloadTasksController.refreshProgress), userInfo: nil, repeats: true) timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: #selector(DownloadTasksController.refreshProgress), userInfo: nil, repeats: true)
if fetchedResultController.delegate !== self {
fetchedResultController.delegate = self
tableView.reloadData()
}
} }
override func viewWillDisappear(animated: Bool) { override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated) super.viewWillDisappear(animated)
timer?.invalidate() timer?.invalidate()
timer = nil timer = nil
fetchedResultController.delegate = nil
} }
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

View File

@ -32,7 +32,15 @@ class LocalBooksController: UITableViewController, NSFetchedResultsControllerDel
override func viewWillAppear(animated: Bool) { override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated) super.viewWillAppear(animated)
tabBarController?.navigationItem.rightBarButtonItem = nil if fetchedResultController.delegate !== self {
fetchedResultController.delegate = self
tableView.reloadData()
}
}
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
fetchedResultController.delegate = nil
} }
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

View File

@ -49,7 +49,7 @@
</dict> </dict>
</array> </array>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>1.8.758</string> <string>1.8.761</string>
<key>ITSAppUsesNonExemptEncryption</key> <key>ITSAppUsesNonExemptEncryption</key>
<false/> <false/>
<key>LSRequiresIPhoneOS</key> <key>LSRequiresIPhoneOS</key>

View File

@ -21,7 +21,7 @@
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>????</string> <string>????</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>1.8.761</string> <string>1.8.764</string>
<key>NSExtension</key> <key>NSExtension</key>
<dict> <dict>
<key>NSExtensionMainStoryboard</key> <key>NSExtensionMainStoryboard</key>