gpt4 book ai didi

ios - 为 uinavigationcontroller 堆栈上的每个 View Controller 创建关闭按钮

转载 作者:行者123 更新时间:2023-11-28 06:24:55 32 4
gpt4 key购买 nike

我希望在导航堆栈中出现的每个 View Controller 上都有一个关闭按钮。我读过 here我需要创建一个 uinavigationdelegate 对象,我想这个对象会有一个像 didTapCloseButton 这样的方法?

问题:我是否应该创建一个协议(protocol)并确认所有内容,即:

protocol CustomDelegate: UINavigationControllerDelegate {
func didTapCloseButton()
}

public class ViewController: CustomDelegate {
func didTapCloseButton() {
//not sure what goes in here?
}
}

如何让关闭按钮显示在每个 View 的导航栏上?当用户单击关闭按钮时,我如何才能关闭该堆栈上的每个 View ?

感谢您的帮助!

最佳答案

这是一个简单的解决方案。创建 UINavigationController 子类并覆盖 pushViewController 方法。

class NavigationController: UINavigationController {
override func pushViewController(_ viewController: UIViewController, animated: Bool) {
super.pushViewController(viewController, animated: animated)

let closeBarButtonItem = UIBarButtonItem(
title: "Close",
style: .done,
target: self,
action: #selector(self.popViewController(animated:)))

viewController.navigationItem.rightBarButtonItem = closeBarButtonItem
}
}

关于ios - 为 uinavigationcontroller 堆栈上的每个 View Controller 创建关闭按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42229322/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com