当前位置: 首页 > 面试题库 >

隐藏导航栏而不会丢失SwiftUI中的向后滑动手势

李捷
2023-03-14
问题内容

在SwiftUI中,每当导航栏被隐藏时,向后滑动手势也将被禁用。

在保留SwiftUI中的向后滑动手势的同时,有什么方法可以隐藏导航栏?我已经有一个自定义的“后退”按钮,但仍然需要该手势。

我已经看到了UIKit的一些解决方案,但仍然不知道如何在SwiftUI中进行操作

这是尝试代码的代码:

import SwiftUI

struct RootView: View {
    var body: some View {
        NavigationView {
            NavigationLink(destination: SecondView()) {
                Text("Go to second view")
            }
        }
    }
}

struct SecondView: View {
    var body: some View{
        Text("As you can see, swipe to go back will not work")
        .navigationBarTitle("")
        .navigationBarHidden(true)
    }
}

任何建议或解决方案,不胜感激


问题答案:

这应该通过扩展来起作用UINavigationController

extension UINavigationController: UIGestureRecognizerDelegate {
    override open func viewDidLoad() {
        super.viewDidLoad()
        interactivePopGestureRecognizer?.delegate = self
    }

    public func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
        return viewControllers.count > 1
    }
}


 类似资料:
  • 问题内容: 我可以使我的应用程序通过SFSafariViewController自动加载此帖子的网址,并且效果很好,唯一的缺点是导航栏。 以这种方式使用SFSafariViewController导航栏时,它是无用的,因为url是只读的,并且“ done”链接除了重新加载页面外不执行任何操作。因此,我想完全隐藏导航栏。 根据已接受答案的注释,建议将我的根视图控制器设置为SFSafariViewCo

  • 是否可以永久删除活动上的导航栏?我想删除与按钮出现在平板电脑屏幕上的按钮,而不是操作栏。这里。 我知道不建议那样做,我没有做这个决定,但我需要这样做。在我的布局上,还有一个按钮离开活动。我的应用程序的其余部分可以有导航栏。 我找到了这段代码,并对其进行了一些修改。问题是,即使我隐藏了导航栏,也会留下一个黑色的空间。我猜系统计算屏幕大小时考虑了导航栏?

  • 描述 (Description) 导航栏可以隐藏/对于那些不需要导航条一些Ajax加载页面自动显示。 只要您使用的贯通型的布局是唯一有用的。 您需要添加no-navbar类加载的页面,并把一个空的导航条。 例子 (Example) 下面的例子自动隐藏导航栏,当你点击链接 - 创建文件navbar_hide_auto_about.html navbar_hide_auto_about.html <d

  • 当想下滚动页面的时候,Framework7可以让导航栏和工具栏自动隐藏。 如果你想全局启用这个功能,你只需要在 应用初始化 时候设置这几个参数:hideNavbarOnPageScroll, hideToolbarOnPageScroll, hideTabbarOnPageScroll 和 showBarsOnPageScrollEnd: 如果你只想在某些特定页面打开自动隐藏的功能,你可以通过添加

  • 我想在我的活动中永久隐藏导航栏(而不是整个系统ui)。现在我正在使用这段代码 它隐藏栏,但是当用户触摸屏幕时,它会再次显示。有没有办法永久隐藏它,直到活动;

  • 我有一个小的演示聊天UI应用程序。此应用程序有一个底部导航栏。我需要在键盘出现时隐藏底部导航栏。 下面是一个聊天UI的例子 当您单击EditText元素时,可以看到键盘出现,但底部导航栏仍然可见。我尝试过这种测量方法,但是UI元素像这样闪烁。 当键盘可见时,是否有适当的方法隐藏底部导航栏? 编辑:在下面的活动中,您可以看到当键盘被确定为可见时,我将键盘监听器设置为调整用户界面元素的位置。 这是我的