我的应用程序有一个
UINavigationController
作为初始视图控制器,并且 RootViewControler
作为 UINavigationController
的根视图控制器。
然后我创建了
FirstViewController
和 SecondViewController
,这样我们就可以从 RootViewController
导航到 FirstViewController
,然后导航到 SecondViewController
。
问题是如何自定义导航栏上
backBarButtonItem
的操作。默认 backButtonItem
弹出顶视图控制器,但我想在弹出之前显示一些警报。
我尝试在
viewDidLoad
中为 RootViewController
、FirstViewController
和 SecondViewController
添加以下代码,但我仍然具有后退按钮的默认行为。
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.backBarButtonItem = UIBarButtonItem(title: "Hello", style: .plain, target: self, action: #selector(backButtonTapped))
}
想知道我错过了什么吗?
谢谢。
您无法自定义后栏按钮项目的 action。它只做一件事:返回。如果您想编写自己的按钮来执行其他操作,请使用左栏按钮项目(并可能抑制后栏按钮项目)。
第一个控制器的按钮。
此外,应该在将控制器推入堆栈之前修改 backBarButtonItem。 viewDidLoad
init
开始做。