如何在 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的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin ios - 如何从静态 TableView 访问单元格

如何在 Xamarin 中使用具有 android/IOS 特定视图的控制模板

Xamarin.Forms 警告:尝试使用 iOS 图像/手势识别器在其视图不在窗口层次结构中的 * 上呈现 *

如何将背景图像分配给 ios 的 xamarin 表单中的条目

如何在 Xamarin.Forms for android / ios 中实现特定布局

如何将 Objective-C initXXX 方法绑定到具有相同类型参数的 Xamarin.iOS 构造函数?