     /// Indicate this view controller prefers its navigation bar hidden or not,
     /// checked when view controller based navigation bar's appearance is enabled.
     /// Default to false, bars are more likely to show.
-    var sh_prefersNavigationBarHidden: Bool {
+    public var sh_prefersNavigationBarHidden: Bool {
         get {
             guard let bools = objc_getAssociatedObject(self, RuntimeKey.KEY_sh_prefersNavigationBarHidden) as? Bool else {
                 return false

    }
    
    /// Whether the interactive pop gesture is disabled when contained in a navigation stack.
    var sh_interactivePopDisabled: Bool {
        get {
            guard let bools = objc_getAssociatedObject(self, RuntimeKey.KEY_sh_interactivePopDisabled) as? Bool else {
                return false


extension UIScrollView: UIGestureRecognizerDelegate {
    
    public var sh_scrollViewPopGestureRecognizerEnable: Bool {
        get {
            guard let bools = objc_getAssociatedObject(self, RuntimeKey.KEY_sh_scrollViewPopGestureRecognizerEnable) as? Bool else {
                return false
