我有以下代码尝试在我的应用上加载网页:
Console.WriteLine("login view class");
NSUrl url = new NSUrl("http://deekor.com");
NSUrlRequest request = new NSUrlRequest(url);
loginWebView.LoadRequest(request);
最后一行:
loginWebView.LoadRequest(request);
正在抛出System.Reflection.TargetInvocationException
例外。
loginWebView
是UIWebView
出了什么问题?
修改
我想我忘记了这一行:loginWebView = new UIWebView();
添加后,异常消失了......但页面没有加载..
查看调试中的本地人,我在调用loginWebView
之前将null
设置为loginWebView = new UIWebView();
。我想创建一个这样的新的,或者我的插座出了什么问题?
LoginViewController.Designer.cs
故事板
答案 0 :(得分:2)
@Deekor,
我加载了一个新项目,我试图准确地制作你正在制作的东西。如果我按照以下步骤操作,我遇到了同样的问题:
这不起作用,因为您注意到因为Web视图为空。它不应该。我不知道为什么,但是在自动创建的LoginViewController.cs文件中也缺少方法。我无法覆盖你想要的ViewDidLoad()。即使该类继承自UIViewController,覆盖也不可用。所以这就是我如何解决问题:
现在你可以这么做:
public partial class LoginViewController : UIViewController
{
public LoginViewController (IntPtr handle) : base (handle)
{
}
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
loginWebView.LoadRequest(new NSUrlRequest(new NSUrl("http://deekor.com")));
}
}
我不知道为什么有时候来自新项目的自动生成的文件会很奇怪,但基本上我所做的就是删除它创建的内容,并再次手动添加相同的内容然后就可以了。启动时Web视图为null是让我觉得有些错误的原因。如果有些事情令人困惑,请评论,如果可以,我会尽力解释。我按照上面的步骤完成了这项工作。在附加的图像中,您可以看到它在模拟器中运行,显示您的页面。
答案 1 :(得分:1)
只是看看发生了什么,请尝试以下方法:
Console.WriteLine("login view class");
var webView = new UIWebView(this.View.Frame);
this.View.Add(webView);
NSUrl url = new NSUrl("http://deekor.com");
NSUrlRequest request = new NSUrlRequest(url);
webView.LoadRequest(request);
如果这样可行,则意味着将WebView添加到故事板然后作为插座连接的问题......