我的iOS应用程序中有一个操作按钮(使用Swift 3),我猜这在技术上是一个工具栏项目。
我现在使用
禁用viewWillAppear()中的按钮actionButton.isEnabled = false
然后我尝试在选择图像后启用它:
func imagePickerController(_: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
if let image = info[UIImagePickerControllerOriginalImage] as? UIImage {
imageView.image = image
imageView.contentMode = .scaleAspectFit
}
dismiss(animated: true, completion: nil)
actionButton.isEnabled = true
print("selected an image in picker")
}
我可以看到我的print语句以及正在选择的图像和活动视图控制器解除,正如预期的那样。但是,我的actionButton保持禁用状态。
任何想法为什么?我对Swift很新!
答案 0 :(得分:6)
viewWillAppear()
。当您关闭imagePicker时,返回显示原始viewController,actionButton.isEnable = true
将再次被调用,并且它会再次将您的viewDidLoad()
覆盖为false。如果我是你,我会禁用{{1}}中的按钮,该按钮只被调用一次。
答案 1 :(得分:0)
尝试执行更改主线程中UI的代码,如下所示:
DispatchQueue.main.async {
actionButton.isEnabled = true
}