tabBarController и первая вкладка viewDidLoad - PullRequest
0 голосов
/ 21 июля 2011

Я создал приложение tabBarNavigated. Во второй вкладке я делаю что-то, что работает нормально, но теперь я хочу сделать что-то в первой вкладке, поэтому сначала я пытаюсь NSLog строку, но я не получаю никакой реакции.

- (void)viewDidLoad
{
 NSLog(@"Test");
}

Если я добавлю метку к представлению, она будет отображаться, но никакой реакции на мой код нет.

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

enter image description here

Я пытаюсь использовать NSlog в GehaltView

это главное окно

enter image description here

viewWillAppear не работает: (

Ответы [ 2 ]

3 голосов
/ 21 июля 2011

Метод -viewDidLoad вызывается только при загрузке вашего представления. Этот метод больше не будет вызываться , пока представление не будет выгружено, и в этом случае будет вызываться -viewDidUnload. Представление может быть выгружено, если есть проблема с памятью, но в остальном они обычно остаются.

Если вы хотите вызвать действие, которое происходит каждый раз, когда появляется представление, тогда вы можете использовать метод -viewWillAppear:. Этот метод вызывается каждый раз, когда представление снова появляется. Вы можете отследить исчезновение вида с помощью -viewWillDisappear и наблюдать, как эти два вызова вызываются при переключении между двумя вкладками.

Обратите также внимание, что -viewDidLoad может быть вызвано до появления представления, но -viewWillAppear будет вызываться только тогда, когда представление действительно появляется (или за несколько минут до того, как указывает will).

РЕДАКТИРОВАТЬ: код должен читать

-(void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    NSLog(@"View Will Appear");
}

РЕДАКТИРОВАТЬ: Весь этот ответ предполагает, что у вас есть подкласс UIViewController. Мне кажется, что вы обходите стороной использование viewControllers, что в целом является плохой идеей.

0 голосов
/ 21 июля 2011

Я нашел решение, в конструкторе интерфейсов мне нужно добавить пользовательский класс на вкладку forst.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...