ios - 如何在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!
}
另外,我想删除导航标题的下划线。我怎样才能删除它?
解决方案
我在相同情况的项目中使用它:
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),如下所示:
推荐阅读
- html - 我想了解如何将 2 个(以及更多)图像放在一起
- javascript - reactjs和nextjs中如何使用postMessage和addEventListener?
- mit-scratch - Scratch 的 BBC micro:bit 扩展添加失败
- cypress - 如何在 div 中使用 getText 并将其存储在赛普拉斯的变量中
- python - 使用小部件在主窗口中显示多个图形
- javascript - Blockly 在浏览器中不显示任何内容
- c# - 我将如何每 x 秒刷新/更新命令行?
- python - 如何使用 python 遍历目录并从所有 csv 中删除特定列?
- sql - GROUP BY A、B、C 和其他用于计数数据?
- javascript - OnlyOffice 中调试插件的可能替代方案