一尘不染

迅速:在导航栏中设置后退按钮图像

swift

我正在尝试在控制器的导航栏中设置后退按钮图像,这是viewDidLoad()中的代码:

        var backImg: UIImage? = UIImage(named: "back_btn.png")
    println(backImg)
    if var back_img = backImg  {
        println("GET IT")
        println(back_img)
        println(UIControlState.Normal)
        println(UIBarMetrics.Default)
    self.navigationController.navigationBar.backItem.backBarButtonItem.setBackButtonBackgroundImage(back_img, forState: UIControlState.Normal, barMetrics: UIBarMetrics.Default)
    }

我试图将它们放到viewWillLoad中,但是得到了同样的错误

控制台出现错误消息:

<UIImage: 0x7ff37bd85750>
GET IT
<UIImage: 0x7ff37bd85750>
VSC14UIControlState (has 1 child)
(Enum Value)
fatal error: unexpectedly found nil while unwrapping an Optional value

我不知道哪一部分出了问题。似乎back_img不是nil,但我收到错误消息说它为nil

谢谢!


阅读 224

收藏
2020-07-07

共1个答案

一尘不染

我已经研究了示例代码。1)在情节提要中创建一个条形按钮项。2)使用IBOutlet将按钮链接到控制器3)将图像添加到按钮

 var backImg: UIImage = UIImage(named: "back_btn")
 backBtn.setBackgroundImage(backImg, forState: .Normal, barMetrics: .Default)

PS:应将图像添加到Images.xcassets文件夹,有关详细信息,请参见示例代码UICatalog

2020-07-07