2009-02-23 2 views
0

Есть ли способ представить вид диспетчера режима просмотра до того, как лист действий полностью был уволен? Я пытаюсь сделать это здесь, но это, кажется, что обратный вызов должен завершить до появления модальный вид:Нынешний модальный вид перед листом действия полностью отклонен

- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex 
{ 
    if (0 == buttonIndex) {  // clicked 'Are you sure?' button 
     [self splashScreen:YES]; 
... 

И тогда я, по существу сделать:

[[AppDelegate tabBarController] presentModalViewController: self.TMX_splashViewController анимированный: ДА];

Моя проблема в том, что я хотел бы ответить на вопрос "Вы уверены?" в листе действий, а затем покажите индикатор прогресса в моем модульном контроллере просмотра, пока я выполняю некоторую работу (выполняйте пакетную загрузку). Но, похоже, на самом деле находится лист действий;)

РЕШЕНИЕ: Я поставил небольшую задержку перед представлением контроллера модального вида. Не уверен, что я полностью это понимаю, но, похоже, было какое-то состояние гонки, когда рабочий блок кода «продвигался» модального кода представления. После небольшой задержки, похоже, работает. Эм, это странно!

[self splashScreen:YES];     
NSTimer *timer; 
timer = [NSTimer scheduledTimerWithTimeInterval:0.75 
     target: self selector:@selector(waitForSplashTimer:) userInfo: nil repeats: NO]; 
+0

Не уверен, что если это «кошерный», но я должен был поставить небольшая задержка, и теперь она работает: [self splashScreen: YES]; \t \t \t \t \t NSTimer * таймер; не \t \t таймер = [NSTimer scheduledTimerWithTimeInterval: 0,75 \t \t \t \t \t \t \t \t \t \t \t \t цель: селектор самостоятельно: @selector (waitForSplashTimer :) UserInfo: ноль повторов: NO]; – Rob

ответ

2

Вы также можете использовать -performSelector: withObject: afterDelay :, это немного меньше кода, и легче читать:

[self performSelector: @selector(waitForSplashTimer:) withObject: nil afterDelay: 0.75]; 
Смежные вопросы