显示"取消"照片库中的按钮(UIImagePickerController)swift 4

时间:2018-01-17 05:37:36

标签: iphone swift swift4 xcode9

在我的 AppDelegate.swift 文件中,我有两行:

let barButtonItemMenu = UIBarButtonItem.appearance()   
     barButtonItemMenu.setTitleTextAttributes([NSAttributedStringKey.foregroundColor: UIColor.clear], for: .normal)

允许我删除所有导航控制器中的back文本。一切都很好但是当我用UIImagePickerController打开照片库时,Cancel按钮没有出现,但是当我删除这两行时,会出现Cancel按钮和我的back文字出现。

我的问题是如何在照片库中显示Cancel按钮?如何删除所有导航控制器中的back文本?

2 个答案:

答案 0 :(得分:2)

基本上您正在清除导航控制器按钮的文本

您可以尝试做一件事而不是使用

清除后退按钮的文本
let barButtonItemMenu = UIBarButtonItem.appearance()   
     barButtonItemMenu.setTitleTextAttributes([NSAttributedStringKey.foregroundColor: UIColor.clear], for: .normal)

使用

self.navigationItem.setHidesBackButton(true, animated: false)

这不会在您执行操作时清除文本,但会隐藏导航堆栈中的按钮

你可以在WillAppear中使用这个简单的行来隐藏

ScreenShot 1 - 从其他Vc导航到VC1后,根据需要不显示后退按钮 - 预期输出

enter image description here

ScreenShot 2 - 单击按钮时VC1库中心的按钮使用imagePicker显示,该按钮具有取消按钮,如图所示 - 预期输出

enter image description here

看看演示项目 - https://drive.google.com/open?id=1exKMgZSQZ8zT64yJOh-MX5O-uAIPdrj6

答案 1 :(得分:0)

这是删除后退按钮文本的正确方法。您实际上是将按钮的颜色更改为清除哪个使其不可见但按钮仍保留在那里并且仍然可以进行交互。删除后退按钮文本的正确方法是remove back button text

当你这样做时,你的图像选择器控制器也会有取消按钮