我的应用中有一个图片选择器可以打开用户相册(iOS),以便他们可以选择图像。我正在使用xamarin跨平台,所以我有一个依赖服务导致这一块代码。之后我得到了所有正确的代码,但问题是图像选择器没有显示前一次或两次,只在用户刷新整个应用程序后才开始工作。以下是我用来创建选择器的以下代码:
imagePicker = new UIImagePickerController ();
imagePicker.SourceType = UIImagePickerControllerSourceType.PhotoLibrary;
imagePicker.MediaTypes = UIImagePickerController.AvailableMediaTypes (UIImagePickerControllerSourceType.PhotoLibrary);
imagePicker.FinishedPickingMedia += Handle_FinishedPickingMedia;
imagePicker.Canceled += Handle_Canceled;
//Show the picker
UIApplication.SharedApplication.KeyWindow.RootViewController.PresentModalViewController (imagePicker, true);
请注意,我已经尝试过NavigationController.PresentModalViewController但最终会出现空错误。我也试过“PresentViewController”,但没有帮助。此外,是否有任何不同的方式来显示图像选择器?任何帮助将不胜感激!
答案 0 :(得分:2)
请尝试使用Xamarin Media插件,而不是使用DependencyService。
var file = await CrossMedia.Current.PickPhotoAsync();
答案 1 :(得分:0)
PresentModalViewController
已弃用于6.0 https://developer.xamarin.com/api/member/UIKit.UIViewController.PresentModalViewController/p/UIKit.UIViewController/System.Boolean/
尝试更改此行:
UIApplication.SharedApplication.KeyWindow.RootViewController.PresentModalViewController (imagePicker, true);
到此:
UIApplication.SharedApplication.KeyWindow.RootViewController.PresentViewController (imagePicker, true, null);
答案 2 :(得分:0)
看起来你还没有设置ModalPresentationStyle
属性。我还注意到了PresentModalViewController方法中缺少的动作处理程序参数。
imagePicker.ModalPresentationStyle = UIModalPresentationStyle.Popover;