4

如何设置动作 backBarButtonItem 并仍然显示左箭头?

我使用了此代码,但未显示箭头

var barBack = UIBarButtonItem(title: "Reset", style: UIBarButtonItemStyle.Plain, target: self, action: "reset:")
self.navigationItem.leftBarButtonItem = barBack

但是当我使用此代码时,该操作不起作用

self.navigationController?.navigationBar.topItem?.backBarButtonItem = barBack

谢谢

4

3 回答 3

2

作为设置操作的替代方法,您可以保留backBarButtonItem并使用它isMovingFromParentViewController来处理返回导航堆栈的逻辑。

override func viewWillDisappear(animated: Bool) {
    super.viewWillDisappear(animated)
    if isMovingFromParentViewController() {
        .. do something here
    }
}
于 2015-08-10T18:38:09.363 回答
0

尝试这个

var barBack = UIBarButtonItem(title: "Reset", style: UIBarButtonItemStyle.Plain, target: self, action: "reset:")
self.navigationItem.leftBarButtonItem = barBack

让我知道它是否有效。

于 2014-10-17T09:48:44.190 回答
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 和 boolean 替换为您想要的值,一切都会正常工作。

*** 编辑

如果你不想回到Root View Controller, 而不是

self.navigationController?.popToRootViewControllerAnimated(boolean)

你可以说:

self.navigationController?.popViewControllerAnimated(boolean)

甚至ViewController通过指定第一个参数为类popToViewController的对象YourViewController,第二个是动画的布尔值来弹出其他参数。

于 2016-02-22T15:19:01.937 回答