this.NavigationController 为空(xamarin ios stoaryboard)
this.NavigationController is null (xamarin ios stoaryboard)
当我通过单击登录按钮从一个故事板移动到另一个故事板时,this.NavigationController 显示为空。所以我无法 PushViewController。
我有一个带有两个视图的故事板,并且两个视图有单独的 UIViewControllers。
您必须显式创建 UINavigationController 并将初始视图控制器放入其中。这样做会自动设置该导航控制器中包含的任何视图控制器的 NavigationController 属性。
// create the view controller for your initial view - using storyboard, code, etc
var first = new UIViewController(...);
// wrap your VC inside a Nav controller
var nav = new UINavigationController(first);
只是为了添加到 Jason 的回答中。默认情况下 RootViewcontroller 是初始视图控制器。
我所做的是用导航视图控制器覆盖初始视图控制器:
[Register("AppDelegate")]
public class AppDelegate : UIApplicationDelegate
{
public override UIWindow Window
{
get;
set;
}
public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
{
Window.RootViewController = new UINavigationController(Window.RootViewController);
return true;
}
这是我添加的行:
Window.RootViewController = new UINavigationController(Window.RootViewController);
Window.RootViewController:是ViewController,例如MainViewController
我正在用导航控制器覆盖这个默认设置的初始控制器。
这对我来说非常有效。
当我通过单击登录按钮从一个故事板移动到另一个故事板时,this.NavigationController 显示为空。所以我无法 PushViewController。
我有一个带有两个视图的故事板,并且两个视图有单独的 UIViewControllers。
您必须显式创建 UINavigationController 并将初始视图控制器放入其中。这样做会自动设置该导航控制器中包含的任何视图控制器的 NavigationController 属性。
// create the view controller for your initial view - using storyboard, code, etc
var first = new UIViewController(...);
// wrap your VC inside a Nav controller
var nav = new UINavigationController(first);
只是为了添加到 Jason 的回答中。默认情况下 RootViewcontroller 是初始视图控制器。 我所做的是用导航视图控制器覆盖初始视图控制器:
[Register("AppDelegate")]
public class AppDelegate : UIApplicationDelegate
{
public override UIWindow Window
{
get;
set;
}
public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
{
Window.RootViewController = new UINavigationController(Window.RootViewController);
return true;
}
这是我添加的行:
Window.RootViewController = new UINavigationController(Window.RootViewController);
Window.RootViewController:是ViewController,例如MainViewController 我正在用导航控制器覆盖这个默认设置的初始控制器。 这对我来说非常有效。