В в документации UIViewController
о свойстве searchDisplayController
1 говорится:
Если вы создаете контроллер отображения поиска программно, это свойство устанавливается автоматически контроллер дисплея поиска, когда он инициализирован.
И когда я создаю свой UISearchDisplayController следующим образом:
[[[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:self] autorelease];
- [UIViewController searchDisplayController]
не равно nil
. Однако он обнуляется после завершения цикла событий, что приводит к тому, что контроллер отображения поиска не отображается, когда я касаюсь внутри панели поиска. Ничего не вылетает. Это очень странно. Если я опущу вызов autorelease
, все будет работать:
[[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:self];
Однако утечка UISearchDisplayController
(я проверил это с помощью Instruments). Поскольку свойство searchDisplayController
помечено как (неатомарно, сохранять, только для чтения)
, я ожидаю, что оно сохранит UISearchDisplayController
после его установки.
Эта статья о stackoverflow связана.