diff options
author | E.Z. Hart <hartez@users.noreply.github.com> | 2017-01-03 05:02:10 -0700 |
---|---|---|
committer | Rui Marinho <me@ruimarinho.net> | 2017-01-03 12:02:10 +0000 |
commit | 58909e205a6b10fd1ed834c0ea5a37950504d035 (patch) | |
tree | 3d7d29a6b6fdb48af4792d3e0f30319a39531482 /Xamarin.Forms.Platform.iOS | |
parent | f003cfd3886adb85cd6dd10e8083bc82abb68234 (diff) | |
download | xamarin-forms-58909e205a6b10fd1ed834c0ea5a37950504d035.tar.gz xamarin-forms-58909e205a6b10fd1ed834c0ea5a37950504d035.tar.bz2 xamarin-forms-58909e205a6b10fd1ed834c0ea5a37950504d035.zip |
Allow subscriber to be collected if MessagingCenter is the only reference to it (#617)
* Repro
* Make messaging center callbacks weak references
* Preserve attribute
* Fix test method name
* Watch for collection of actual delegate target instead of wrapper delegate
* Preserve the original platform instance when changing main page
* Better tests for lambda situations
* Update tests, make callback target a weakreference if it's the subscriber
* Ensure old Platform MessagingCenter subs are gone before creating new Platform
Diffstat (limited to 'Xamarin.Forms.Platform.iOS')
-rw-r--r-- | Xamarin.Forms.Platform.iOS/FormsApplicationDelegate.cs | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/Xamarin.Forms.Platform.iOS/FormsApplicationDelegate.cs b/Xamarin.Forms.Platform.iOS/FormsApplicationDelegate.cs index 0aacfd06..da51718c 100644 --- a/Xamarin.Forms.Platform.iOS/FormsApplicationDelegate.cs +++ b/Xamarin.Forms.Platform.iOS/FormsApplicationDelegate.cs @@ -165,9 +165,11 @@ namespace Xamarin.Forms.Platform.iOS return; var platformRenderer = (PlatformRenderer)_window.RootViewController; - _window.RootViewController = _application.MainPage.CreateViewController(); + if (platformRenderer != null) ((IDisposable)platformRenderer.Platform).Dispose(); + + _window.RootViewController = _application.MainPage.CreateViewController(); } } }
\ No newline at end of file |