UINavigationController автоматически изменяет поведение представлений

StackOverflow https://stackoverflow.com/questions/2331013

Вопрос

Я читал в документации Apple о поведении UINavigationController по изменению размера, и до сих пор это не было большой проблемой.

У меня есть следующий код для настройки представления моего UINavigationController:

navController.view.frame = CGRectMake(0, 40, 320, 420);

и этого достаточно до тех пор, пока представление не будет закрыто модальным представлением, после чего размер представления будет изменен до размера по умолчанию где-то между вызовами viewWillAppear и viewDidAppear (поскольку UINavigationController наследуется от UIViewController).

Я пытаюсь сохранить видимый баннер над UINavigationController (в оставшемся доступном пространстве 40 на 320), но этот баннер постоянно затемняется, как описано выше.

Есть ли способ превзойти поведение UINavigationController по изменению размера без самостоятельного создания подкласса UIViewController?

Это было полезно?

Решение

В interface builder вы можете снять флажок автоматически изменять размер.

В коде это

[myNavController.view setAutoresizesSubviews: NO];

Другие советы

Я бы попробовал

myNavController.superview.autoresizesSubviews = NO

и, очевидно, проверить myNavController.autoresizingMask

В качестве последнего средства создайте подкласс его superview и переопределите layoutSubviews

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top