[英]how to show viewcontroller: UIImagePickController and dismiss it (Swift)
我得到了这个uiactionsheet,它在UISplitViewController的viewcontroller中加载了uipickerviewcontroller
这是一个UIsplitviewcontroller,此代码位于detailview上,从masterview调用detailview
但是,当我尝试加载“单击它”时,它会警告我并且不再继续
func actionSheet(actionSheet: UIActionSheet!, clickedButtonAtIndex buttonIndex: Int){
var imagePicker = UIImagePickerController()
imagePicker.delegate = self
switch buttonIndex{
case 0:
imagePicker.sourceType = UIImagePickerControllerSourceType.SavedPhotosAlbum
imagePicker.allowsEditing = true
imagePicker.delegate = self
NSLog("Vælg fra Biblioteket");
break;
case 1:
imagePicker.sourceType = UIImagePickerControllerSourceType.Camera
imagePicker.allowsEditing = true
imagePicker.delegate = self
NSLog("Vælg Kamera");
break;
default:
NSLog("Default");
break;
}
self.presentViewController(imagePicker, animated: true, completion: nil) // this is the problem
}
警告是这样的:警告:尝试在已经显示的内容上显示(空)
我如何使用它:self.showDeatilViewController(imagePicker,true)它显示出来,但是我根本无法将其关闭
这就是我认为它将被驳回的方式
func imagePickerControllerDidCancel(picker: UIImagePickerController) {
picker.dismissViewControllerAnimated(true, completion: nil)
}
如果我在viewDidLoad中运行此代码,则可以工作
var imagePickerController = UIImagePickerController()
imagePickerController.delegate = self
imagePickerController.sourceType = UIImagePickerControllerSourceType.SavedPhotosAlbum
imagePickerController.allowsEditing = true
self.presentViewController(imagePickerController, animated: true, completion: { imageP in
})
我发现如果我写这个:
self.presentedViewController?.presentViewController(imagePicker, animated: true, completion: nil)
它显示并关闭?!?!
我已经开始工作了……有人提醒我,8.0 IOS在打开应用程序的照片库等时出现了一个错误。所以我将其放在这样的主队列中
dispatch_async(dispatch_get_main_queue()){
imagePicker.delegate = self
self.presentViewController(imagePicker, animated: true, completion: nil)
}
现在就可以了!
稍有延迟,但有效
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.