当前位置: 首页 > 面试题库 >

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

王波
2023-03-14
问题内容

我正在尝试在控制器的导航栏中设置后退按钮图像,这是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

谢谢!


问题答案:

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

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

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



 类似资料:
  • ap.setOptionButton(OPTION | items, CALLBACK) 设置导航栏右侧按钮。 OPTION 参数说明 名称 类型 必填 描述 onClick Function 否 监听 optionButton 点击事件 reset Boolean 否 重置到系统默认按钮,默认为 false。当为 true 时,忽略其他参数 preventDefault Boolean 否 是否

  • 问题内容: 我正在使用react native导航(react- navigation)StackNavigator。它从应用程序整个生命周期的“登录”页面开始。我不想使用返回选项,返回“登录”屏幕。有谁知道登录屏幕后如何将其隐藏在屏幕上?顺便说一句,我也使用以下命令将其隐藏在登录屏幕中: 问题答案: 1)要使后退按钮在react-navigation v2或更高版本中消失: 2)如果您要清理导航

  • 问题内容: 当我按下a时,它在new的后退按钮中有一些标题,如果标题中包含很多文本,则在iPhone 4s中看起来不太好,所以我想删除它。 如果我在函数中添加一些代码,那将是一个麻烦。 还有更好的方法吗? 问题答案: 如果要返回箭头,则将以下代码放入文件中。 另一个选择在下面给出。 在 在 更新: 更新SWIFT 4.1: 使用偏移 因此可能是您的问题已解决。 快乐的编码。

  • 问题内容: 如何更改导航栏的后退按钮的字体。 后退按钮可以是“后退”,也可以是前一个视图控制器的标题。 我认为这可以工作: 但可选的return 。 问题答案: 刚刚测试了您的代码,看来行返回的原因实际上是因为返回nil。因此,如果您将该属性设置为有效的字体名称,则代码应该运行无错误- 即使显式设置为nil。 但是无论如何,正如我在测试中看到的那样,这条线不会给您显然想要的结果。前导的可选内容不应

  • 我开始创建一个应用程序,它使用一个活动(导航抽屉)和许多片段。但我无法使用工具栏上的“后退”按钮从片段中导航回来。硬件后退按钮工作正常。我知道我需要覆盖选项ItemSelected,捕捉android。R、 id.home,检查后堆栈中是否有内容,然后弹出它。在更改片段后,“burger”按钮变为“back arrow”,但当我单击它时,选项ItemSelected将打开NavigationDra

  • 问题内容: 我想在导航栏的左侧快速显示图像。 我尝试添加导航栏按钮项并在那里设置图像。 问题是我必须使用非常小的图像才能使其很好地适应导航栏。但是制作如此小的图像会导致像素化,特别是在较大的手机iPhone 6和6 Plus上。 有没有一种方法可以使用高质量的图像,然后将框架设置为适合导航栏的边界? 我的尝试: 我尝试先将框架放在图像上,然后再放在条形按钮项上。但这抛出了一个错误: 没有更多上下文