Скрытие UIToolbar UINavigationController во время просмотра исчезнет: - PullRequest
29 голосов
/ 26 февраля 2010

У меня есть приложение для iPhone с меню UITableView. Когда строка в таблице выбрана, соответствующий контроллер представления помещается в стек UINavigationController приложения.

Моя проблема в том, что MenuViewController не нужна панель инструментов, а UIViewControllers, которые помещаются в стек. Каждый UIViewController, который получает нажатие, вызывает setToolbarHidden:animated: в viewDidAppear:. Чтобы скрыть панель инструментов, я звоню setToolbarHidden:animated: in viewWillDisappear:.

Отображение панели инструментов работает таким образом, что при появлении нажатого вида панель инструментов сдвигается вверх и размер изображения корректно изменяется. Однако при нажатии кнопки «Назад» панель инструментов сдвигается вниз, но вид не изменяется. Это означает, что есть черная полоса вдоль нижней части вида при переходе другого вида. Я пытался добавить высоту панели инструментов к высоте вида до того, как скрыть панель инструментов, но это приводит к анимированию вида во время переход, так что есть еще черная полоса.

Я понимаю, что могу управлять своим собственным UIToolbar, но для удобства я хотел бы использовать UINavigationControllers, встроенный в UIToolbar.

В этом сообщении на форуме упоминается та же проблема, но обходного пути не упоминается.

Ответы [ 11 ]

0 голосов
/ 26 февраля 2010

Это просто дикий удар в темноте, но, возможно, вам следует запустить runloop один раз после скрытия панели инструментов:

[viewController setToolbarHidden:YES animated:YES];
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.0]];
...