如何设置动作backBarButtonItem并仍然显示左箭头?
我使用了此代码但箭头未显示
var barBack = UIBarButtonItem(title: "Reset", style: UIBarButtonItemStyle.Plain, target: self, action: "reset:")
self.navigationItem.leftBarButtonItem = barBack
但是当我使用此代码时,操作无法正常工作
self.navigationController?.navigationBar.topItem?.backBarButtonItem = barBack
由于
答案 0 :(得分:2)
作为设置操作的替代方法,您可以保留backBarButtonItem
并使用isMovingFromParentViewController
代替处理返回导航堆栈的逻辑。
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
if isMovingFromParentViewController() {
.. do something here
}
}
答案 1 :(得分:0)
试试这个
var barBack = UIBarButtonItem(title: "Reset", style: UIBarButtonItemStyle.Plain, target: self, action: "reset:")
self.navigationItem.leftBarButtonItem = barBack
让我知道它是否有效。
答案 2 :(得分:0)
试试这个:
在ViewDidLoad
let backButton = UIBarButtonItem(title: "< Home", style: UIBarButtonItemStyle.Plain, target: self, action: "goBack")
navigationItem.leftBarButtonItem = backButton
navigationItem.backBarButtonItem?.setTitleTextAttributes([NSFontAttributeName: UIFont(name: "the_font_you_want_to_use", size: size_of_the_font_this_should_be_integer)!], forState: UIControlState.Normal)
并实现以下方法:
func goBack() {
self.navigationController?.popToRootViewControllerAnimated(boolean)
}
只需将the_font_you_want_to_use,size_of_the_font_this_should_be_integer和布尔值替换为您想要的值,一切都将正常工作。
***编辑
如果您不想回到Root View Controller
,而不是
self.navigationController?.popToRootViewControllerAnimated(boolean)
你可以说:
self.navigationController?.popViewControllerAnimated(boolean)
甚至弹出到其他ViewController
,指定popToViewController
的第一个参数为YourViewController
类的对象,第二个为动画的布尔值。