无法在 Xamarin.IOS 中查看 PushViewController

Not able to View PushViewController in Xamarin.IOS

我在 First ViewController 中有两个 ViewControllers,只是在这个按钮 touchupinside 事件上有按钮 我正在尝试打开 Second ViewController。这第二 ViewController 有 webView。从 touchupinside 我正在通过 url。但是在这里我看不到 Second ViewController 也看不到 webView.

在 UI 按钮中 => 拖动 Action Segue(Show)

FirstViewController代码:

UINavigationController _nav = null;
public override void ViewDidLoad()
{
    base.ViewDidLoad();
    _nav = new UINavigationController();
}
partial Void BtnOne_TouchUpInside(UIButton sender)
{
    _nav.PushViewController(new CustomeWebViewController("http://www.google.com"), true);
}

SecondViewController代码:

string _url;
public CustomeWebViewController(string url)
{
    _url = url;
}
public override void ViewDidLoad()
{
    base.ViewDidLoad();
    var webView = new UIWebView(View.Bounds);
    webView.LoadRequest(new NSUrlRequest(new NSUrl(_url)));
    webView.ScalesPageToFit = true;
    View.AddSubview(webView);
}

所以问题是您没有有效的 NavigationController。而且你必须有一个导航。

必须做的第一件事是将 NavigationController 添加到您的 Storyboard

为此,请遵循 instructions 3、4、5、6 e 7。

但基本上您会添加一个 NavigationController,并使其指向您的 FirstViewController

现在添加 FirstViewController 指向 SecondViewController

在您的 FirstViewController 代码中,您必须这样做:

partial void BtnOne_TouchUpInside(UIButton sender)
{
    NavigationController.PushViewController(new secondviewcontrller("https://xamarin.com"), true);
}

结果:


备选


注意:更好的做法是从 Storyboard 实例化 ViewControllers,这样您就可以这样做:

partial void BtnOne_TouchUpInside(UIButton sender)
{

    var other = Storyboard.InstantiateViewController("secondviewcontroller") as secondviewcontrller;
    other.SetUrl("https://xamarin.com");

    NavigationController.PushViewController(other, true);
}

然后在你的 SecondViewContrller:

public override void ViewDidLoad()
{
    base.ViewDidLoad();
    webView = new UIWebView(View.Bounds);
    View.AddSubview(webView);
    webView.ScalesPageToFit = true;
    webView.LoadRequest(new NSUrlRequest(new NSUrl(_url)));
}

public void SetUrl(string url) 
    _url = url;
}