如何在 Xamarin for iOS 中呈现具有不同导航的 viewController

Posted

技术标签:

【中文标题】如何在 Xamarin for iOS 中呈现具有不同导航的 viewController【英文标题】:How can present a viewController with a different navigation in Xamarin for iOS 【发布时间】:2018-06-13 13:46:07 【问题描述】:

应用程序中已经存在导航,但是对于特定的 ViewController,我需要创建一个单独的导航。有可能吗??谢谢

【问题讨论】:

是的,可以创建新导航并将其设置为 rootview 控制器 如何创建它? 【参考方案1】:

您可以在AppDelegate中创建单独的导航,并通过触发按钮点击事件或其他任何方式将其设置为Window的RootViewController。

AppDelegate

UINavigationController originNav;
UINavigationController newNav;

public void changeNavigation()
    newNav = new UINavigationController(new UIViewController2());
    Window.RootViewController = newNav;


public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)

    originNav = new UINavigationController(new UIViewController1());

    Window = new UIWindow(UIScreen.MainScreen.Bounds);
    Window.RootViewController = originNav;
    Window.MakeKeyAndVisible();

originNav里面的ViewController

//wherever
private void buttonClick()

    AppDelegate app = UIApplication.SharedApplication.Delegate as AppDelegate;
    app.changeNavigation();

【讨论】:

感谢您的回答。就一个问题。你觉得 UIViewController1 和 UIViewController2 怎么样?非常感谢 它们只是导航中的初始视图控制器,如果它们包含在故事板中,您可以通过UIViewController vc1 = UIStoryboard.FromName("MainStoryboard", null).InstantiateViewController("UIViewController1");创建它们。

以上是关于如何在 Xamarin for iOS 中呈现具有不同导航的 viewController的主要内容,如果未能解决你的问题,请参考以下文章