我有一个用Xamarin编写的iOS应用程序。它的目标是iOS 7.1。使用SDK 8。 我的代码如下:
var dialog = DialogHelper.ShowProgress(View, "Uploading");
picker.PickPhotoAsync().ContinueWith(t =>
{
if (t.IsCanceled || t.IsFaulted)
{
AppDelegate.FileUploadController.IsWorking = false;
dialog.Dismiss();
return;
}
MediaFile file = t.Result;
string filePath = file.Path;
UploadHelper.UploadFile(filePath, _folderId, temp, dialog);
}, TaskScheduler.FromCurrentSynchronizationContext());
这在iOS 7(模拟器和设备)上运行良好,但在iOS 8照片显示一秒钟,而不是显示加载屏幕。
我做错了什么?我在谷歌上找不到任何有用的信息。
答案 0 :(得分:0)
如果其他人需要此功能,https://components.xamarin.com/gettingstarted/xamarin.mobile说:
显示MediaPicker以响应UIActionSheet.Clicked事件将导致iOS 8上的意外行为。应更新应用程序以有条件地使用UIAlertControllerStyle.ActionSheet样式的UIAlertController。
所以如果设备在iOS 8上,我编辑了我的代码以使用UIAlertController。
它有效。
答案 1 :(得分:0)
我遇到了同样的问题,我只是将点击的事件更改为UIActionSheet解雇的事件。 EJ。
actionsheet.Dismissed+= delegate(object sender, UIButtonEventArgs b) {
if(b.ButtonIndex==0){
useCamera();
}
else if(b.ButtonIndex==1){
useGallery();
}
希望这有帮助。