C# 是否可以在Monotouch中更改UITabBarController上的实际ViewController

C# 是否可以在Monotouch中更改UITabBarController上的实际ViewController,c#,xamarin.ios,uitabbarcontroller,C#,Xamarin.ios,Uitabbarcontroller,我有一个Monotouch应用程序,在AppDelegate上RootViewController是一个TabBarController,这个TabBarController有5个ViewController,比如我使用的view1到view5 tabBarController.SelectedIndex = 2; 要选择应用程序启动时将加载的viewController,它可以工作,默认选项卡栏是view3,现在我需要显示另一个viewController,比如说,从view1更改为view

我有一个Monotouch应用程序,在AppDelegate上RootViewController是一个TabBarController,这个TabBarController有5个ViewController,比如我使用的view1到view5

tabBarController.SelectedIndex = 2;
要选择应用程序启动时将加载的viewController,它可以工作,默认选项卡栏是view3,现在我需要显示另一个viewController,比如说,从view1更改为view5,并使用代码,这可能吗?有一种方法可以在我的选项卡栏的一个按钮上模拟clic,它也可以工作

更新:

我试过:

view1.TabBarController.ViewControllers[4].PresentViewController(view5, true, delegate{});
它可以工作,但view5显示在选项卡栏上,我也尝试了以下方法:

view1.TabBarController.TabBar.Items[4]. //I don't know which method could invoke the click
在此处选择要单击的选项卡栏项

我认为解决方案接近于此,问题是view5总是显示在选项卡栏上并阻止它

已解决:

view1.TabBarController.SelectedIndex = 2; //where the number is the view zero-based

这是你想要的吗?您可以从任何单击处理程序调用它

AppDelegate.Current.NavController.PushViewController(new View5(), true);
在我的AppDelegate类中,我有:

public partial class AppDelegate : UIApplicationDelegate
{
    public static AppDelegate Current { get; private set; }
    public UINavigationController NavController { get; private set; }

    public override bool FinishedLaunching (UIApplication app, NSDictionary options)
    {
        Current = this;
        NavController = new UINavigationController();
        ...
    }
}

还是只想切换选项卡:

这就是您想要的?您可以从任何单击处理程序调用它

AppDelegate.Current.NavController.PushViewController(new View5(), true);
在我的AppDelegate类中,我有:

public partial class AppDelegate : UIApplicationDelegate
{
    public static AppDelegate Current { get; private set; }
    public UINavigationController NavController { get; private set; }

    public override bool FinishedLaunching (UIApplication app, NSDictionary options)
    {
        Current = this;
        NavController = new UINavigationController();
        ...
    }
}

还是只想切换标签:

谢谢Chuck,我觉得自己好笨。。。view1.TabBarController.SelectedIndex=4;这是我的第一次尝试,但Iphone模拟器抛出了一个错误,我认为“SelectedIndex”仅在创建Tabbar控制器时使用。实际上这个错误是在同一个动作中被其他东西抛出的,我把所有的。。只要留下那条线,它就会起作用。你的欢迎-哪一条对你起作用?(同时用复选标记检查答案是否正确,这样其他人就不需要回答了)。谢谢Chuck,我觉得自己太笨了。。。view1.TabBarController.SelectedIndex=4;这是我的第一次尝试,但Iphone模拟器抛出了一个错误,我认为“SelectedIndex”仅在创建Tabbar控制器时使用。实际上这个错误是在同一个动作中被其他东西抛出的,我把所有的。。只要留下那条线,它就会起作用。你的欢迎-哪一条对你起作用?(同时用复选标记检查答案是否正确,以便其他人不需要回答)。