MonoTouch: как выбрать начальный вид из нескольких представлений TabBarController - PullRequest
0 голосов
/ 30 декабря 2010

У меня есть 5 представлений TabBar ... как выбрать, какое представление появляется при первом запуске приложения?(У меня есть некоторые вычисления с использованием данных, которые являются нулевыми во время запуска приложения).Приложение вылетает ДО того, как оно дойдет до FinishedLaunching!И как он определяет, какой вид будет первым?

Один предыдущий ответ, который мне предложили tabBarController.SelectedIndex = 0;(Я использую MonoTouch), но не сказал мне, где его разместить.

Ответы [ 2 ]

1 голос
/ 04 января 2011

Вы должны создавать свои контроллеры представления в ViewDidLoad UITabBarController, а не в 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 ()

0 голосов
/ 31 декабря 2010
var u = new UIViewController[]
{
   tab1,
   tab2,
   tab3,
   tab4,
   tab5,
};

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

Обычно я подкласс UITabBarController и добавляю код выше в метод ViewDidAppear, который я переопределить.

...