gpt4 book ai didi

c# - 在图像点击上在模拟器中打开图库

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

我想在单击按钮时在 iPhone 模拟器中打开图库。我正在使用 Xamarin 表单 - xaml 来创建页面和 ImageView 。

到目前为止我已经实现了什么:我有一个特定于 iOS 的 GalleryService,它实现了具有方法 selectImage 的 IGalleryService。 selectImage 创建一个 UIImagePickerController _imagePicker。

在特定于 iOS 的应用程序中,我会这样做

 NavigationController.PresentModalViewController(_imagePicker, true);

但是如何使用 xamarin 表单中的导航来做类似的事情呢?

PS:我在 .xaml 文件中创建了 View ,并在 xaml.cs 文件中跨页面移动,如

Navigation.PushModalAsync(page)

这里,页面基本上应该包含 _imagePicker View ,对吧?怎么做?如果我错了,请纠正我。

最佳答案

Xamarin.Forms 实际上利用 iOS 上的单个 NavigationController 来托管所有不同的页面。所有 Xamarin 内容页面导航都在 XF 内部发生,在单个主 NavigationController 内。

您不能在 NavigationPage 堆栈中混合使用其他 native View Controller 。但是您可以使用您通常会使用的所有 native 代码,并且只将形成的一个 NavigationController 视为单个“屏幕”。

在iOS原生项目中,可以使用

var topController = UIApplication.SharedApplication.KeyWindow.RootViewController;
while (topController.PresentedViewController != null) {
topController = topController.PresentedViewController;
}
topController.PresentViewController (_imagePicker, true, null);

要访问 XF 的 View Controller ,请找到顶部的 Controller 并像在“ native ”ios 应用程序中一样使用它来呈现模态视图。

请注意,在“LoadApplication”完成之前,此 RootViewController 将为空,因此请确保在此之后进行任何调用,如果您是从正在运行的应用程序而不是在启动时立即触发此操作,则应始终如此。

如果使用 PCL,您将需要某种形式的 DependencyService 来从您的共享代码中触发此调用,并且您可能需要在 native 应用程序中添加更多逻辑才能将结果返回到共享代码中。您还需要在您的应用程序可能针对的任何其他平台(例如 Android 或 UWP)上重新实现这一点。

关于c# - 在图像点击上在模拟器中打开图库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38636984/

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