изменить размер окна push / pop viewcontroller - PullRequest
2 голосов
/ 07 декабря 2009

мне нужно уменьшить высоту UINavigationBar (прикрепленной к UINavigationController)

Я сделал это с помощью метода navigationController для UINavigationControllerDelegate: didShowViewController, и он работает нормально.

проблема в видимом контроллере вида, который находится в главном представлении. это не изменяло размеры, чтобы отразить новую высоту navbar. таким образом, метод didShowViewController также изменяет размер рамки просмотра viewcontroller, что прекрасно работает.

однако, когда я нажимаю на новый ViewController или pop, я всегда вижу сдвиг представления в исходное положение во время анимированного перехода к следующему представлению. затем, из-за кода, который я имею в didShowViewController в NavControllerDelegate, он сдвигает его обратно.

Мне любопытно, как лучше всего обеспечить, чтобы сдвиг никогда не происходил.

Я попытался поместить код, который изменяет размеры фрейма, в willShowViewController, но это ничего не делает.

Я также удостоверился, что кадр UIView, который является представлением UIViewController, который выскочил, также имеет правильные / сдвинутые размеры. не ходи туда.

как будто мне нужно перехватить действия рисования после вызова pushViewController и до вызова didShowViewController объекта UINavigationController.

Я часами смотрю на свой код ... никуда не денусь. надеюсь, это имеет смысл для кого-то там.

спасибо !!!

1 Ответ

2 голосов
/ 07 декабря 2009

Другим вариантом, который я думаю, было бы установить NavigationControllers navigationBarHidden равным YES. Это полностью скроет навигационную панель, а затем вы сможете нарисовать любой вид в том месте, где бы находилась панель. Просто поместите элементы управления в представление, которые обертывают методы навигации (push, pop и т. Д.). Однако может быть непросто заставить его иметь тот же стиль, что и панель навигации.

...