2011-02-03 1 views
1

У меня есть приложение панели вкладок, и я сталкиваюсь с странным поведением ... когда я переключаю панель вкладок и добираюсь до новых контроллеров представлений, иногда viewDidLoad этих контроллеров представлений вызывает ... хотя viewDidLoad следует вызвать только в первый раз ... может кто-нибудь сказать ... любое предложение?Странное поведение tabbarcontroller

+0

Вы имеете в виду, когда вы входите, затем возвращайтесь и снова заходите? –

ответ

2

Если есть предупреждение о низкой памяти, тогда контроллер панели вкладок освободит все виды, которые не видны. Это означает, что вы можете получить viewDidLoad, вызываемый более одного раза, поскольку представление было выгружено.

0

Вы уверены, что это viewDidLoad, а не viewWillAppear?

viewDidLoad будет вызываться только один раз в каждом подклассе UIViewController, поэтому, если ваш макет выглядит так:

-UITabBarController: 
    - HappyUIViewController 
    - SadUIViewController 
    - ThirdUIViewController 

Тогда viewDidLoad будет называться три раза. Однажды для HappyUIViewController, один раз для SadUiViewController и т. Д.

+0

Я уверен, что его viewDidLoad ... – devaditya

1

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

+0

Ха, вы избили меня до ответа на 26 секунд :) – deanWombourne

+0

это может быть причиной ... но когда я запускаю свое приложение ... использование памяти никогда не превышает 6 МБ ... – devaditya

+0

@deanWombourne Иногда лучше получается: вы получили кредит на ответ. :) –

Смежные вопросы