Сегодня я проводил тестирование и отладку своего приложения для iPhone и столкнулся со странным поведением.
В моем MainView
у меня есть два модальных представления, и при показе одного из них с использованием presentModalViewController
я заметил, что был вызван метод viewDidUnload
моего MainView
, в то время как при показе другого этого не происходило. То же самое было и с методом viewDidLoad
(из MainView
) при закрытии подвидов.
Я проверил два метода открытия и закрытия подвидов, и единственное различие, которое я нашел, было в modalTransitionStyle
. В том, который активировал viewDidUnload
/viewDidLoad
, я использовал UIModalTransitionStyleFlipHorizontal
, а в другом UIModalTransitionStyleCrossDissolve
. Затем я начал экспериментировать, поменяв местами два стиля и используя другие стили перехода, и обнаружил, что это действительно было причиной различного поведения. На самом деле, при использовании UIModalTransitionStyleFlipHorizontal
всегда вызывались методы viewDidUnload
/viewDidLoad
"родительского" контроллера представления, в то время как для других стилей перехода этого никогда не происходило.
Теперь мой вопрос заключается в том, что это должно вести себя так, и если нет, то какое поведение является правильным. Должны ли вызываться методы выгрузки и загрузки при отображении и закрытии модального представления или нет.
Кроме того, может ли кто-то еще подтвердить или опровергнуть это поведение?
спасибо
PS. метод viewDidLoad
двух вызываемых контроллеров представления вызывается каждый раз. Просто для уточнения :)