Как показать viewcontroller: UIImagePickController и отклонить его (Swift)
Я получил этот uiactionsheet, который загружает uipickerviewcontroller его в viewcontroller, который в UISplitViewController
Это UIsplitviewcontroller, этот код находится в подробном представлении, подробный вид вызывается из masterview
как бы то ни было, когда я пытаюсь загрузить его, "нажмите на него", он выдает мне предупреждение и больше не идет
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)
это показывает и закрывает?!?!
1 ответ
У меня это работает... кто-то обратил мое внимание на то, что в 8.0 IOS есть ошибка с открытием фотолиберии и тому подобного из приложений... поэтому я поместил его в основную очередь вот так
dispatch_async(dispatch_get_main_queue()){
imagePicker.delegate = self
self.presentViewController(imagePicker, animated: true, completion: nil)
}
и теперь это работает!
небольшая задержка, но это работает