0

我有 5 个 TabBar 视图...如何选择应用程序首次启动时出现的视图?(我使用应用程序启动时为空的数据进行了一些计算)。该应用程序甚至在它到达 FinishedLaunching 之前就崩溃了!它如何确定哪个视图将成为第一个视图?

以前的一个答案我得到了建议 tabBarController.SelectedIndex = 0; (我正在使用 MonoTouch)但没有告诉我在哪里放置它。

4

2 回答 2

1

您应该在 UITabBarController 的 ViewDidLoad 中创建视图控制器,而不是在 ViewDidAppear 中。我使用下面的代码(第一部分在您的 AppDelegate 类中):

    // WARNING: Do not make these variables local. MonoTouch will loose the reference to them!
    private UIWindow _mainWindow;
    private MainTabBarController _mainTabBarController;

    public override bool FinishedLaunching(UIApplication app, NSDictionary options)
    {
        _mainWindow = new UIWindow(UIScreen.MainScreen.Bounds);
        _mainTabBarController = new MainTabBarController();
        _mainWindow.AddSubview(_mainTabBarController.View);
        _mainWindow.MakeKeyAndVisible ();
        return true;
    }

您的 MainTabBarController 类应如下所示:

public class MainTabBarController : UITabBarController
{
    public override void ViewDidLoad ()
    {
        ViewControllers = new UIViewController[]
        {
            new ViewControllerTab1(),
            new ViewControllerTab2(),
            new ViewControllerTab3(),
            new ViewControllerTab4(),
            new ViewControllerTab5()
        };
        SelectedIndex = 2;
    }
}

这将在启动时显示 Tab3(索引为 2)。

ViewControllerTab1 等是派生自例如的类。UIViewController 或 UINavigationController 在自己的 ViewDidLoad() 中实现其用户界面

于 2011-01-04T10:36:06.103 回答
0
var u = new UIViewController[]
{
   tab1,
   tab2,
   tab3,
   tab4,
   tab5,
};

this.ViewControllers = u;
this.SelectedViewController = tab1;

我通常对 UITabBarController 进行子类化,并将上面的代码添加到我覆盖的 ViewDidAppear 方法中。

于 2010-12-30T21:29:53.717 回答