Метод ниже вызывается из основного потока?
- (void)searchDisplayControllerWillEndSearch:(UISearchDisplayController *)controller
Вы можете проверить так:
if ([NSThread isMainThread]) {
NSLog(@"Yes it is the main thread.");
}
В противном случае любые изменения вида не будут регистрироваться на экране. Если вам нужно изменить вид из отдельного потока, вы можете использовать это:
[self performSelectorOnMainThread:@selector(XXX) withObject:nil waitUntilDone:NO];
Я не уверен, что это ваша проблема, но я бы начал искать.