Commit c29d05df authored by sczs's avatar sczs Committed by Commit Bot

[ios] Reland Stops observing FeedView when its VC is removed.

Bug: 1085419
Change-Id: Ie4c211b2b725f8ae5b82bb8a7e2c545fbd162d03
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2367737
Commit-Queue: Sergio Collazos <sczs@chromium.org>
Commit-Queue: Ganggui Tang <gogerald@chromium.org>
Auto-Submit: Sergio Collazos <sczs@chromium.org>
Reviewed-by: default avatarGanggui Tang <gogerald@chromium.org>
Cr-Commit-Position: refs/heads/master@{#800382}
parent 5b55c176
...@@ -111,9 +111,15 @@ NSString* const kContentSuggestionsMostVisitedAccessibilityIdentifierPrefix = ...@@ -111,9 +111,15 @@ NSString* const kContentSuggestionsMostVisitedAccessibilityIdentifierPrefix =
} }
- (void)dealloc { - (void)dealloc {
[self.discoverFeedVC willMoveToParentViewController:nil]; // Only remove the FeedVC and observer if it was actually added to the
[self.discoverFeedVC.view removeFromSuperview]; // hierarchy. |self.discoverFeedVC| is only added to the hierarchy at the same
[self.discoverFeedVC removeFromParentViewController]; // time the KVO observer is added to |self.feedView|, so its safe to remove.
if (self.discoverFeedVC.parentViewController) {
[self.feedView removeObserver:self forKeyPath:@"contentSize"];
[self.discoverFeedVC willMoveToParentViewController:nil];
[self.discoverFeedVC.view removeFromSuperview];
[self.discoverFeedVC removeFromParentViewController];
}
[self.overscrollActionsController invalidate]; [self.overscrollActionsController invalidate];
} }
...@@ -419,8 +425,10 @@ NSString* const kContentSuggestionsMostVisitedAccessibilityIdentifierPrefix = ...@@ -419,8 +425,10 @@ NSString* const kContentSuggestionsMostVisitedAccessibilityIdentifierPrefix =
UIViewController* newFeedViewController = discoverFeedItem.discoverFeed; UIViewController* newFeedViewController = discoverFeedItem.discoverFeed;
if (newFeedViewController != self.discoverFeedVC) { if (newFeedViewController != self.discoverFeedVC) {
// If previous VC is not nil, remove it from the view hierarchy. // If previous VC is not nil, remove it from the view hierarchy and stop
// osberving its feedView.
if (self.discoverFeedVC) { if (self.discoverFeedVC) {
[self.feedView removeObserver:self forKeyPath:@"contentSize"];
[self.discoverFeedVC willMoveToParentViewController:nil]; [self.discoverFeedVC willMoveToParentViewController:nil];
[self.discoverFeedVC.view removeFromSuperview]; [self.discoverFeedVC.view removeFromSuperview];
[self.discoverFeedVC removeFromParentViewController]; [self.discoverFeedVC removeFromParentViewController];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment