У меня есть установка UISearchDisplayController
с UITableViewController
, которая вложена внутри UINavigationController
. Когда выполняется выбор ячейки, запускается метод UITableView's
didSelectRowAtIndexPath
, который выталкивает новое представление родительскому контроллеру навигации. Этот новый вид должен иметь панель навигации, скрытую при входе.
[[self navigationController] setNavigationBarHidden:YES animated:NO];
Я использую эту строку в методе didSelectRowAtIndexPath
, чтобы скрыть панель навигации. Это отлично работает, когда строка выбрана не с помощью контроллера поиска, но переопределяется при выборе результата поиска. Кажется, что UISearchDisplayController
берет это в своем правом, чтобы скрыть навигацию через некоторое время после выбора строки.
Если я переведу вызов setNavigationBarHidden
в метод целевого представления viewWillAppear
, результаты будут похожи. Я могу заставить его работать, поместив вызов hide в viewDidAppear
, но это создает очень неудобный переходный эффект, который кажется неустойчивым и неуместным. Я бы хотел, чтобы navigationBar уже был скрыт до того, как новое представление переместится на экран.
Кто-нибудь знает, где происходит невидимость навигации, и/или каким-либо образом я могу переопределить это поведение?