Skip to content

Commit 3dcd108

Browse files
committed
Views Never Did Unload, so use Disappear instead
1 parent 8c592f8 commit 3dcd108

File tree

5 files changed

+31
-15
lines changed

5 files changed

+31
-15
lines changed

ReactiveUI.Platforms/Cocoa/ReactiveCollectionViewController.cs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020

2121
namespace ReactiveUI.Cocoa
2222
{
23-
public abstract class ReactiveCollectionViewController : UICollectionViewController, IReactiveNotifyPropertyChanged, IHandleObservableErrors, IReactiveObjectExtension, ICanActivate
23+
public abstract class ReactiveCollectionViewController : UICollectionViewController,
24+
IReactiveNotifyPropertyChanged, IHandleObservableErrors, IReactiveObjectExtension, ICanActivate
2425
{
2526
protected ReactiveCollectionViewController(UICollectionViewLayout withLayout) : base(withLayout) { setupRxObj(); }
2627
protected ReactiveCollectionViewController(string nibName, NSBundle bundle) : base(nibName, bundle) { setupRxObj(); }
@@ -88,15 +89,15 @@ public IDisposable SuppressChangeNotifications()
8889
Subject<Unit> deactivated = new Subject<Unit>();
8990
public IObservable<Unit> Deactivated { get { return deactivated; } }
9091

91-
public override void ViewDidLoad()
92+
public override void ViewDidAppear(bool animated)
9293
{
93-
base.ViewDidLoad();
94+
base.ViewDidAppear(animated);
9495
activated.OnNext(Unit.Default);
9596
}
9697

97-
public override void ViewDidUnload()
98+
public override void ViewDidDisappear(bool animated)
9899
{
99-
base.ViewDidUnload();
100+
base.ViewDidDisappear(animated);
100101
deactivated.OnNext(Unit.Default);
101102
}
102103
}

ReactiveUI.Platforms/Cocoa/ReactiveImageView.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,11 @@ public override void WillMoveToSuperview(NSView newsuper)
9393
public override void ViewWillMoveToSuperview(NSView newsuper)
9494
#endif
9595
{
96+
#if UIKIT
9697
base.WillMoveToSuperview(newsuper);
98+
#else
99+
base.ViewWillMoveToSuperview(newsuper);
100+
#endif
97101
RxApp.MainThreadScheduler.Schedule(() => (newsuper != null ? activated : deactivated).OnNext(Unit.Default));
98102
}
99103
}

ReactiveUI.Platforms/Cocoa/ReactiveNSView.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,11 @@ public override void WillMoveToSuperview(NSView newsuper)
116116
public override void ViewWillMoveToSuperview(NSView newsuper)
117117
#endif
118118
{
119+
#if UIKIT
119120
base.WillMoveToSuperview(newsuper);
121+
#else
122+
base.ViewWillMoveToSuperview(newsuper);
123+
#endif
120124
RxApp.MainThreadScheduler.Schedule(() => (newsuper != null ? activated : deactivated).OnNext(Unit.Default));
121125
}
122126
}

ReactiveUI.Platforms/Cocoa/ReactiveNSViewController.cs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,11 @@ namespace ReactiveUI.Cocoa
2929
/// This is an View that is both an NSViewController and has ReactiveObject powers
3030
/// (i.e. you can call RaiseAndSetIfChanged)
3131
/// </summary>
32-
public class ReactiveViewController : NSViewController, IReactiveNotifyPropertyChanged, IHandleObservableErrors, IReactiveObjectExtension
32+
public class ReactiveViewController : NSViewController,
33+
IReactiveNotifyPropertyChanged, IHandleObservableErrors, IReactiveObjectExtension
34+
#if UIKIT
35+
, ICanActivate
36+
#endif
3337
{
3438
protected ReactiveViewController() : base()
3539
{
@@ -105,21 +109,23 @@ public IDisposable SuppressChangeNotifications()
105109
return this.suppressChangeNotifications();
106110
}
107111

112+
#if UIKIT
108113
Subject<Unit> activated = new Subject<Unit>();
109114
public IObservable<Unit> Activated { get { return activated; } }
110115
Subject<Unit> deactivated = new Subject<Unit>();
111116
public IObservable<Unit> Deactivated { get { return deactivated; } }
112117

113-
public override void ViewDidLoad()
118+
public override void ViewDidAppear(bool animated)
114119
{
115-
base.ViewDidLoad();
120+
base.ViewDidAppear(animated);
116121
activated.OnNext(Unit.Default);
117122
}
118123

119-
public override void ViewDidUnload()
124+
public override void ViewDidDisappear(bool animated)
120125
{
121-
base.ViewDidUnload();
126+
base.ViewDidDisappear(animated);
122127
deactivated.OnNext(Unit.Default);
123128
}
129+
#endif
124130
}
125131
}

ReactiveUI.Platforms/Cocoa/ReactiveTableViewController.cs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222

2323
namespace ReactiveUI.Cocoa
2424
{
25-
public abstract class ReactiveTableViewController : NSTableViewController, IReactiveNotifyPropertyChanged, IHandleObservableErrors, IReactiveObjectExtension, ICanActivate
25+
public abstract class ReactiveTableViewController : NSTableViewController,
26+
IReactiveNotifyPropertyChanged, IHandleObservableErrors, IReactiveObjectExtension, ICanActivate
2627
{
2728
protected ReactiveTableViewController(NSTableViewStyle withStyle) : base(withStyle) { setupRxObj(); }
2829
protected ReactiveTableViewController(string nibName, NSBundle bundle) : base(nibName, bundle) { setupRxObj(); }
@@ -90,15 +91,15 @@ public IDisposable SuppressChangeNotifications()
9091
Subject<Unit> deactivated = new Subject<Unit>();
9192
public IObservable<Unit> Deactivated { get { return deactivated; } }
9293

93-
public override void ViewDidLoad()
94+
public override void ViewDidAppear(bool animated)
9495
{
95-
base.ViewDidLoad();
96+
base.ViewDidAppear(animated);
9697
activated.OnNext(Unit.Default);
9798
}
9899

99-
public override void ViewDidUnload()
100+
public override void ViewDidDisappear(bool animated)
100101
{
101-
base.ViewDidUnload();
102+
base.ViewDidDisappear(animated);
102103
deactivated.OnNext(Unit.Default);
103104
}
104105
}

0 commit comments

Comments
 (0)