Objective-c: «Пожалуйста, подождите» сообщение, когда перейти на следующую страницу - PullRequest
0 голосов
/ 13 марта 2012

Я занимаюсь разработкой приложения, в котором есть несколько viewControllers.Первый - «MainMenu», а второй - «Page1».

Я хотел бы показать предупреждение «Пожалуйста, подождите ...», когда оно перейдет на следующую страницу.Мой код ниже работает, но предупреждение появляется после загрузки «page1».Я хотел бы, чтобы он появлялся, когда пользователь нажимает кнопку на странице «MainMenu».

У вас есть предложения для этого?

Заранее спасибо.

AppDelegate.m

-(void)showAlert{
altpleasewait = [[UIAlertView alloc] initWithTitle:@"Please Wait..." message:nil delegate:self cancelButtonTitle:nil otherButtonTitles: nil];

[altpleasewait show];

UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];

indicator.center = CGPointMake(altpleasewait.bounds.size.width / 2, altpleasewait.bounds.size.height - 50);
[indicator startAnimating];
[altpleasewait addSubview:indicator];    
}


-(void)waitASecond{
[self performSelector:@selector(dismissAlert) withObject:self afterDelay:0.8];    

}
-(void)dismissAlert{

[altpleasewait dismissWithClickedButtonIndex:0 animated:YES];

}

MainMenu.m

-(void)gotoNextPage{

AppDelegate  *appDelegate = (AppDelegate *)[[UIApplication sharedApplication]delegate];
[appDelegate showAlert];  
page1 = [self.storyboard instantiateViewControllerWithIdentifier:@"Page1"];
[self presentModalViewController:page1 animated:NO];  

}

Page1.m

AppDelegate  *appDelegate = (AppDelegate *)[[UIApplication sharedApplication]delegate];

-------------some methods--------------

 [appDelegate waitASecond];   

Ответы [ 2 ]

1 голос
/ 13 марта 2012

Это всего лишь предложение.Я бы сделал следующее.

  1. В Page1.m в -viewDidAppear я бы вызвал окно с предупреждением для всплывающего окна.Это происходит в основном потоке.Поэтому я не запрещаю отображать или реагировать пользовательский интерфейс.

  2. Я бы переместил все методы, связанные с загрузкой контента Page1, например тексты, которые должны быть прочитаны изURL, в блок, и использовать GCD, чтобы они происходили в фоновом режиме, а не блокировать основной поток.

Как только загрузка будет завершена ...

  1. Я бы взял их, обновил пользовательский интерфейс и отклонил представление предупреждений.

Вот простое руководство, которое может дать вам идею.http://www.raywenderlich.com/4295/multithreading-and-grand-central-dispatch-on-ios-for-beginners-tutorial

1 голос
/ 13 марта 2012

Что вы можете сделать, это поместить предупреждение в IBAction. Проверьте, когда они отклоняют предупреждение, затем измените представления. Или используйте NSTimer, назначьте селектор этому таймеру и внедрите этот селектор для изменения представлений.

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