У меня есть IBAction, и это выглядит так.Остановить выполнение до выполнения предыдущего метода?
- (IBAction) onPressed: (id) sender {
[self openMyDelegateToSeeIfIAmReady];
if (AmIReady == YES)
{
[self doMyWork];
}
}
Прямо сейчас, это не работает. AmIReady
является логическим и изменяется на YES
в openMyDelegateToSeeIfIAmReady
. Дело в том, прежде, чем AmIReady
становится YES
, этот кусок кода
if (AmIReady == YES)
{
[self doMyWork];
}
вызывается и doMyWork
никогда не будет вызван. Как я могу сделать этот метод до тех пор, пока он не закончит [self openMyDelegateToSeeIfIAmReady]
?
EDIT:
Вот что я имею в openMyDelegateToSeeIfIAmReady
- (void) openMyDelegateToSeeIfIAmReady
{
MyViewController *mvc = [[MyViewController alloc]initWithNibName:@"MyViewController" bundle:nil];
mvc.delegate = self;
[self presentModalViewController:mvc animated:YES];
[mvc release];
amIReady = YES;
}
Также в этом делегат (MyViewCrontroller), она требует ввода пользователя. Если введен пользовательский ввод, мне нужно запустить doMyWork
.
Это уже действительно ждать. – trojanfoe
, если вы не используете этот метод в другом потоке, тогда эта функция завершит работу до того, как она вернется в оператор if – Fonix
, он должен ждать; в любом случае, можете ли вы опубликовать код для 'openMyDelegateToSeeIfIAmReady'? – viral