【问题标题】:Safe Area bottom layout issue with interactivePopGesture交互式弹出手势的安全区域底部布局问题
【发布时间】:2019-08-01 11:46:30
【问题描述】:

我们使用了默认的tabbarcontroller。 Tabbar rootViewController 显示 tabbar 和其他 viewcontroller 隐藏的 tabbar。当我们使用 interactivePopGesture 时,safearea 的底部布局不会更新高度。所有其他情况下工作正常

    override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    if navigationController?.viewControllers[0] == self {
        tabBarController?.tabBar.isHidden = false

    } else {
        tabBarController?.tabBar.isHidden = true

    }
}

【问题讨论】:

  • 您需要设置interactivePopGesture Delegate并处理隐藏标签栏。
  • 我们已经在 viewWillAppear 方法中管理了隐藏标签栏
  • 我同意,你能检查它是否被触发。

标签: ios swift iphone ios11


【解决方案1】:

// 问题在您的 Tabbar 相关视图控制器属性中

按照以下步骤操作:

1) 选择了您的标签栏 prfile 视图控制器

2) 禁用推送时隐藏底部栏

3) 在其他视图控制器上推送时启用“推送时隐藏底部栏”

【讨论】:

  • 是的,它的工作原理,当我们需要显示标签栏时,我们需要在 Push 上禁用 Hide Bottom bar,而其他视图控制器的其余部分我们需要设置在 Push 上启用 Hide Bottom bar。谢谢
【解决方案2】:
// i was solved this issue like that in appdelegate when iam check user already login then i will remove removeGestureRecognizer from view
 let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
            let loginPageView = mainStoryboard.instantiateViewController(withIdentifier: "CustomTabVCID") as! CustomTabVC
            let rootViewController = self.window!.rootViewController as! UINavigationController
            rootViewController.view.removeGestureRecognizer(rootViewController.interactivePopGestureRecognizer!)
            rootViewController.pushViewController(loginPageView, animated: true)

// for bottom bar
    // Use this [![enter image description here][1]][1]
    // add this line when you navigate to a ViewController hidesBottomBarWhenPushed
    let vc = storyboard.instantiateViewController(withIdentifier: VC_IDENTIFIER) as! YourViewController
        vc.hidesBottomBarWhenPushed = true
     navigationController?.pushViewController(vc, animated: true)

    // hope its work for you

    or try with Main StoryBoard!
      [1]: https://i.stack.imgur.com/IiVrj.png

【讨论】:

  • i.stack.imgur.com/IiVrj.png 已应用但出现相同问题当我们推送到 viewcontroller 时,它工作正常,但是当尝试使用 interactivePopGesture 弹出并释放 interactivePopGesture 手势时,此问题发生
  • 在两个控制器上添加导航控制器
  • 以上链接解决方案适用于标签栏隐藏显示,但我的问题是当用户尝试 interactivePopGesture 并在不弹出预览控制器的情况下释放它时标签栏高
  • 为什么不移除 View Controller 上的 popGesture ?
猜你喜欢
  • 2013-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-15
  • 2020-03-27
  • 1970-01-01
相关资源
最近更新 更多