Итак, я нашел решение своей проблемы:
Добавление NSLog (@ ""). Это странно.
На мой взгляд, WillAppear у меня есть
if (searchByCuisinier || searchByResto) {
NSLog(@"Will set tableHeaderView");
self.tableView.tableHeaderView = searchBar;
if (searchByCuisinier) {
searchBar.placeholder = @"Cuisinier";
} else {
searchBar.placeholder = @"Restaurant";
}
searchBar.autocapitalizationType = UITextAutocapitalizationTypeNone;
searchBar.autocorrectionType = UITextAutocorrectionTypeNo;
if ([filteredList count] == 0)
[searchBar becomeFirstResponder];
} else {
self.tableView.tableHeaderView = nil;
NSLog(@""); // Magic!
}
Добавление NSLog (@ "") устраняет ошибку.
Также реверс теста:
Вместо
if (searchByCuisinier || searchByResto) {
....
Я делаю:
if (!searchByCuisinier && !searchByResto) {
....
Я абсолютно не знаю, почему это работает (или почему оно не работает без NSLog).