gpt4 book ai didi

c# - 调用 UIViewController 类的非静态函数

转载 作者:行者123 更新时间:2023-11-28 23:58:02 40 4
gpt4 key购买 nike

我正在尝试使用 c# 构建一个移动跨平台 ios 应用程序,但此时我卡住了,因为我无法调用 UIViewController 的非静态函数。这是我的 Main.cs:

...
namespace BSoft.iOS
{
public class Application
{
static void Main(string[] args)
{
UIApplication.Main(args, null, "AppDelegate");
}

public static void OpenWebPage(string link, UIViewController controller)
{
UIStoryboard board = UIStoryboard.FromName("Main", null);
UIViewController ctrl = (UIViewController)board.InstantiateViewController("WebViewController");
/// here I should call SetLink() from WebViewController class
ctrl.ModalTransitionStyle = UIModalTransitionStyle.PartialCurl;
controller.PresentViewController(ctrl, true, null);
}

}
}

这是 WebViewController 类:

...
namespace BSoft.iOS
{
public partial class WebViewController : UIViewController
{
WKWebView WebViewer;

public WebViewController(IntPtr handle) : base(handle)
{
}

public override void ViewDidLoad()
{
base.ViewDidLoad();
// Perform any additional setup after loading the view, typically from a nib.
WebViewer = new WKWebView(View.Frame, new WebKit.WKWebViewConfiguration());
WebViewer.SizeToFit();
WebViewer.LoadRequest(Foundation.NSUrlRequest.FromUrl(Foundation.NSUrl.FromString("https://www.360bsoft.com/register")));
WebViewerContainer.AddSubview(WebViewer);
}

public void SetLink(string link)
{
if(WebViewer!=null)
WebViewer.LoadRequest(Foundation.NSUrlRequest.FromUrl(Foundation.NSUrl.FromString(link)));
}

public override void DidReceiveMemoryWarning()
{
base.DidReceiveMemoryWarning();
}
}
}

在我的 Storyboard中,我将自定义类 ( WebViewController ) 和标识 ( WebViewController ) 归因于我的 webview ViewController,问题是当我更改 View 时,我无法从我的主应用程序调用 SetLink。

有什么想法吗?

最佳答案

在 main.cs 中,尝试将 ctrl 转换为 WebViewController 而不是 UIViewController:

WebViewController ctrl = (WebViewController)board.InstantiateViewController("WebViewController");

很高兴它有效。这个不起作用的原因是 UIViewController 类上没有定义“SetLink”,而 UIViewController 类是您之前将“ctrl”转换为的类型。旁注:在这种情况下实际上可以动态调用它,但这对于您的情况来说是不必要的复杂化。

关于c# - 调用 UIViewController 类的非静态函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50544179/

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