【问题标题】:Interactive pop gesture from view with navigation bar hidden?隐藏导航栏的视图中的交互式弹出手势?
【发布时间】:2014-10-15 00:55:39
【问题描述】:

我有两个视图控制器,其中一个通过标准UINavigationController 推送另一个。第二个视图控制器通过navigationBarHidden 隐藏其导航栏。隐藏该栏似乎会阻止交互式弹出手势识别器工作。我在第二个屏幕上有一个自定义的后退按钮,所以从所有意图和目的来看,它看起来很像一个导航栏,只是透明的等等。

有没有一种方法可以重新启用交互式弹出,同时仍将导航栏隐藏在第二个视图控制器上,但显示在第一个视图控制器上?诚然,我不太确定过渡会是什么,但只是想知道这是否有一个简单的解决方案。

【问题讨论】:

    标签: ios objective-c uinavigationcontroller uigesturerecognizer


    【解决方案1】:

    假设我们有主视图控制器和详细视图控制器,其中详细视图控制器是推送视图控制器。在主视图控制器上将交互式弹出手势的委托设置为 nil 可以启用交互式弹出手势。

     self.navigationController?.interactivePopGestureRecognizer?.delegate = nil
    

    【讨论】:

      【解决方案2】:

      这似乎有效。

      @implementation CustomNavigationController
      
      - (void)viewDidLoad {
      
          [super viewDidLoad];
      
          [[self navigationBar] setHidden:YES];
      }
      
      @end
      

      在 7.1 iOS 模拟器上测试。

      【讨论】:

      • documentation 建议不要这样做: > 要显示或隐藏导航栏,您应该始终通过导航控制器通过更改其 navigationBarHidden 属性或调用 setNavigationBarHidden:animated: 方法来执行此操作。跨度>
      • 隐藏导航栏不足以启用交互式弹出手势
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-22
      • 2013-08-14
      • 2016-02-21
      • 1970-01-01
      • 2015-11-14
      相关资源
      最近更新 更多