首页 > 解决方案 > 如何在swift 5上移回navigationController中的自定义按钮

问题描述

我在 UI 上工作时遇到问题。我正在使用 anavigationController来移动屏幕。

但是我不想使用基本的后退按钮,所以我隐藏了基本的后退按钮,将导航栏添加到情节提要中,

并添加项目以制作后退按钮。但是,屏幕不会移动到前一个屏幕。我怎样才能进入上一个屏幕?

基本后退按钮// 我现在隐藏它。

背部

我想使用我制作的后退按钮。

在此处输入图像描述

后退按钮项目的后退命令。

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

        self.navigationController?.setNavigationBarHidden(true, animated: animated)
    }

    @IBAction func backButton(_ sender: UIBarButtonItem) {
        self.dismiss(animated: false, completion: nil) // Did not worked!
    }

另外,我想删除导航标题的下划线。我怎样才能删除它?

标签: iosswiftnavigationuinavigationcontroller

解决方案


我在相同情况的项目中使用它:

UIApplication.shared.keyWindow?.rootViewController?.dismiss(animated: false, completion: nil)

这可以在 iOS 13 弃用 keyWindow 后使用:

let keyW = UIApplication.shared.windows.filter {$0.isKeyWindow}.first
keyW?.rootViewController?.dismiss(animated: false, completion: nil)

这也可以用于:

self.navigationController?.popViewController(animated: false)

或者

self.navigationController?.popToRootViewController(animated: false)

关于按钮:

为什么不通过在情节提要中创建此层次结构来使用导航按钮:

在此处输入图像描述

然后只需将 btn 的图像更改为您的自定义图像(我使用 burger1.png),如下所示:

在此处输入图像描述


推荐阅读