Каков наилучший способ создания класса экрана загрузки для приложения Monotouch? - PullRequest
2 голосов
/ 07 октября 2011

Мне нужно загрузить и обработать многие вещи до запуска моего приложения, поэтому, когда я тестирую его на своем iPhone, оно всегда убивается iOS, потому что оно слишком долго зависает на iPhone.

Затем я решил написать класс экрана загрузки для моих приложений, который сразу показывает логотип и индикатор прогресса (сохраняя его отзывчивым, чтобы не быть убитым iOS), в то время как в фоновом режиме отдельный поток инициализирует всемои ViewControllers, а затем закрывает экран загрузки и показывает главное окно.

Как лучше всего это сделать с MonoTouch?

Любые предложения приветствуются.Спасибо.

1 Ответ

6 голосов
/ 07 октября 2011

Вот как я это делаю:

В методе FinishedLaunching инициализируйте и добавьте всплывающее представление в главное окно:

window.AddSubview(this.splashView);

После этого вызовите ваш код, который выполняет все то, что вы хотите сделать в потоке / асинхронном вызове. Я обычно использую ThreadPool. Не забудьте вызвать в основной теме:

ThreadPool.QueueUserWorkItem(delegate {
    this.BeginInvokeOnMainThread(delegate {
        //Initialize stuff here
        //...
        //when done, add your initial view to the window and remove the splash view
        //eg.:
        //window.AddSubview(myController.View);
        //this.splashView.RemoveFromSuperview();
    });
});

// show the window, which only displays the splash view now and return
window.MakeKeyAndVisible();
return true;

Грубый пример, но я надеюсь, что это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...