//  Copyright © 2016 Compass. All rights reserved.

#if os(iOS) || os(tvOS)
import UIKit
#else
import Foundation
#endif

extension UIViewController {
    private static var disposerKey = "com.compass.Snail.UIViewController.disposer"

    public var disposer: Disposer {
        if let disposer = objc_getAssociatedObject(self, &UIViewController.disposerKey) as? Disposer {
            return disposer
        }
        let disposer = Disposer()
        objc_setAssociatedObject(self, &UIViewController.disposerKey, disposer, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
        return disposer
    }
}

//  Copyright © 2016 Compass. All rights reserved.

#if os(iOS) || os(tvOS)
import UIKit
#else
import Foundation
#endif

extension UIViewController {
    public var disposer: Disposer {
        return view.disposer
    }
}

--- 
+++ 
@@ -7,7 +7,14 @@
 #endif
 
 extension UIViewController {
+    private static var disposerKey = "com.compass.Snail.UIViewController.disposer"
+
     public var disposer: Disposer {
-        return view.disposer
+        if let disposer = objc_getAssociatedObject(self, &UIViewController.disposerKey) as? Disposer {
+            return disposer
+        }
+        let disposer = Disposer()
+        objc_setAssociatedObject(self, &UIViewController.disposerKey, disposer, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
+        return disposer
     }
 }
Revert "Using VC main view disposer as VC Disposer"

This reverts commit 3bb25ef17d57b623c40c03a7ed6b548922d4c151.
