【问题标题】:Navigation Bar Hidden on Segue/Push (Swift)Segue/Push 上隐藏的导航栏 (Swift)
【发布时间】:2020-04-26 16:15:01
【问题描述】:

我使用以下代码从子级重定向到父级(除了我必须在父级上加载不同的数据 - 将其视为带有按钮的聊天应用程序以查看您的个人资料,您可以单击其他一些您的朋友重定向到不同的聊天,即不同的数据集)。我最初使用


let popOverVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(identifier: "parent") as! UIViewController
       self.navigationController?.pushViewController(popOverVC, animated: true)


但这让我可以通过向左滑动返回上一个聊天(我尝试通过隐藏返回按钮来禁用它,使用

navigationController?.interactivePopGestureRecognizer?.isEnabled = false

它也没有禁用向后滑动功能(我在 ViewDidLoad、ViewWillAppear、ViewWillLayoutSubViews 中使用它,但它仍然不起作用;我仍然可以滑动回到上一个聊天)。所以我尝试使用以下内容,虽然它有效,但我的导航栏会消失。

navigationController?.setNavigationBarHidden(false, animated: true)

当我使用 pushViewController 时有效(但它仍然会让我向后滑动),当我使用根 VC 时它不起作用(但它禁用向后滑动)

这里是我说的rootVC方法:

let window = UIApplication.shared.windows[0] as UIWindow
    popOverVC.navigationController?.setNavigationBarHidden(false, animated: true)
  window.rootViewController = popOverVC





【问题讨论】:

  • 所以你想禁用左滑?

标签: ios swift uiviewcontroller navigation


【解决方案1】:

由于大多数 iOS 用户通过滑动返回而不是通过按下返回按钮来返回。 因为使用 modal segue 而不是 push segue 会更合理,因为 push segue 并没有那么大的转移。您可以禁用后退按钮。

self.navigationController?.navigationItem.backBarButtonItem?.isEnabled = false

【讨论】:

  • 即使没有后退按钮,它仍然可以让我向后滑动。你能简单解释一下模块化segue是什么意思吗?我假设您的意思只是通过 Storyboard 引导到新的视图控制器,但如果我这样做,则导航栏不会出现(即使后退功能已禁用)。所以基本上我仍然有我在问题中描述的同样的问题
猜你喜欢
  • 1970-01-01
  • 2021-03-28
  • 1970-01-01
  • 2018-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-20
相关资源
最近更新 更多