Странное поведение tabbarcontroller - PullRequest
1 голос
/ 03 февраля 2011

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

Ответы [ 3 ]

2 голосов
/ 03 февраля 2011

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

1 голос
/ 03 февраля 2011

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

.
0 голосов
/ 03 февраля 2011

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

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

-UITabBarController:
    - HappyUIViewController
    - SadUIViewController
    - ThirdUIViewController

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

...