gpt4 book ai didi

c# - UIImagePickerController' 不包含 'DismissModalViewControllerAnimated' Xamarin iOS 的定义

转载 作者:行者123 更新时间:2023-11-28 21:29:12 25 4
gpt4 key购买 nike

我正在开发一个适用于 iOS 的应用程序,它可以拍照并将其保存到相机胶卷中我在 DismissModalViewController 上收到此错误:

   Severity CodeError   CS1061  'UIImagePickerController' does not contain a definition for 'DismissModalViewControllerAnimated' and no extension method 'DismissModalViewControllerAnimated' accepting a first argument of type 'UIImagePickerController' could be found (are you missing a using directive or an assembly reference?)

我不知道我做错了什么这是我的类(class)代码:

using Foundation;
using System;
using System.CodeDom.Compiler;
using UIKit;
using CoreGraphics;
using AssetsLibrary;


namespace ToolBelt.iOS
{
partial class Camera : UIViewController
{
public Camera (IntPtr handle) : base (handle)
{
}

UIImagePickerController imagePicker;
UIImagePickerController picker = new UIImagePickerController();

public override void ViewDidAppear(bool animated)
{
base.ViewDidAppear(animated);

imagePicker = new UIImagePickerController();
imagePicker.PrefersStatusBarHidden();

imagePicker.SourceType = UIImagePickerControllerSourceType.Camera;

//Add event handlers when user finished Capturing image or Cancel
imagePicker.FinishedPickingMedia += Handle_FinishedPickingMedia;
imagePicker.Canceled += Handle_Canceled;

//present
PresentViewController(picker, true, () => { });
}

protected void Handle_FinishedPickingMedia(object sender, UIImagePickerMediaPickedEventArgs e)
{
// determine what was selected, video or image
bool isImage = false;
switch (e.Info[UIImagePickerController.MediaType].ToString())
{
case "public.image":
Console.WriteLine("Image selected");
isImage = true;
break;
case "public.video":
Console.WriteLine("Video selected");
break;
}

// get common info (shared between images and video)
NSUrl referenceURL = e.Info[new NSString("UIImagePickerControllerReferenceUrl")] as NSUrl;
if (referenceURL != null)
Console.WriteLine("Url:" + referenceURL.ToString());

// if it was an image, get the other image info
if (isImage)
{
// get the original image
UIImage originalImage = e.Info[UIImagePickerController.OriginalImage] as UIImage;
if (originalImage != null)
{
// do something with the image
Console.WriteLine("got the original image");
imageView.Image = originalImage; // display
}
}
else
{ // if it's a video
// get video url
NSUrl mediaURL = e.Info[UIImagePickerController.MediaURL] as NSUrl;
if (mediaURL != null)
{
Console.WriteLine(mediaURL.ToString());
}
}
// dismiss the picker
imagePicker.DismissModalViewControllerAnimated(true);
}

void Handle_Canceled(object sender, EventArgs e)
{
imagePicker.DismissModalViewControllerAnimated(true);
}
}
}

我正在使用 Xamarin iOS 制作此应用。

最佳答案

您应该使用 imagePicker.DismissViewController(true, null); 关闭图像选择器。

第一个参数表示 Controller 是否被关闭动画。

第二个参数是动画完成时调用的方法。

关于c# - UIImagePickerController' 不包含 'DismissModalViewControllerAnimated' Xamarin iOS 的定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36813581/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com