Я добавил наблюдателя для моего метода:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(closeViewAfterUpdating)
name:@"labelUpdatedShouldReturn"
object:nil];
Затем мои соответствующие методы:
-(void)closeViewAfterUpdating; {
NSLog(@"Part 1 called");
[self performSelector:@selector(closeViewAfterUpdating2) withObject:nil afterDelay:2.0];
}
-(void)closeViewAfterUpdating2; {
NSLog(@"Part 2 called");
[self dismissModalViewControllerAnimated:YES];
}
Единственная причина, по которой я разделил этот метод на две части, этотак что у меня может быть задержка до запуска метода.
Проблема в том, что второй метод никогда не вызывается.Мой NSLog
вывод показывает Part 1 called
, но он никогда не запускает часть 2. Любые идеи?
РЕДАКТИРОВАТЬ: я вызываю уведомление из фонового потока, это имеет значение случайно?
Вот как я создаю свой фоновый поток:
[NSThread detachNewThreadSelector:@selector(getWeather) toTarget:self withObject:nil];
и в getWeather
у меня есть:
[[NSNotificationCenter defaultCenter] postNotificationName:@"updateZipLabel" object:textfield.text];
Кроме того, вызывая:
[self performSelector:@selector(closeViewAfterUpdating2) withObject:nil];
работает работает.
EDITx2: я исправил это.Просто нужно было опубликовать уведомление в моей основной теме, и оно работало просто отлично.