无法在 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;
}
我在 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;
}