Popover со встроенным навигационным контроллером не учитывает размер на задней панели - PullRequest
88 голосов
/ 02 мая 2010

У меня есть UIPopoverController, на котором размещен UINavigationController, который содержит небольшую иерархию контроллеров представления.

Я следовал документации и для каждого контроллера представления я устанавливал размер popover-context представления следующим образом:

[self setContentSizeForViewInPopover:CGSizeMake(320, 500)];

(размер отличается для каждого контроллера)

Это работает, как и ожидалось, поскольку я перемещаюсь вперед в иерархии - поповер автоматически анимирует изменения размера, чтобы соответствовать выдвинутому контроллеру.

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

Я что-то упустил?

Спасибо.

Ответы [ 21 ]

0 голосов
/ 06 апреля 2012

Все, что вам нужно сделать, это:

- В методе viewWillAppear объекта popOvers contentView добавьте фрагмент, приведенный ниже. При первой загрузке вам нужно будет указать размер popOver.

CGSize size = CGSizeMake(width,height);
self.contentSizeForViewInPopover = size;
...