Измените размер UIPopoverView с помощью контроллера навигации

Я реализовал UIPopover представление для ipad с navigation controller внутри. изначально размер всплывающего окна невелик и становится больше, когда я нажимаю на другое представление.

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


person abdur.rehman    schedule 30.06.2012    source источник


Ответы (2)


В контроллере представления реализуйте -(CGSize) contentSizeForViewInPopover и верните CGRect желаемого размера. Это то, что используется во время выполнения для определения размера. Настройка раскадровки - это просто заархивированное значение инициализации. В документации здесь также упоминается несколько крайних случаев, которые вам, возможно, придется рассмотреть (на самом деле существует цепочка ответственности при представлении контроллеров представления, и все может показаться сложным, но это не так уж плохо)

person Chris Trahey    schedule 30.06.2012
comment
Можете ли вы сказать мне, в каком контроллере представления я должен это реализовать? - person abdur.rehman; 30.06.2012

Попробуйте создать подкласс UINavigationController и переопределить его contentSizeForViewInPopover. Это работает для меня :)

Кажется, что по умолчанию UINavigationController смотрит только на ширину своих дочерних контроллеров представления. (а может, только в высоту растет?)

person Błażej    schedule 22.10.2012