Динамические данные в контроллере панели вкладок iOS - PullRequest
0 голосов
/ 09 марта 2011

Я использую контроллер панели вкладок в своем приложении, но при первом запуске приложения я загружаю экран входа в систему поверх контроллера:

initialScreenViewController = [[Login alloc] init];
[window addSubview:tabBarController.view];
[window addSubview:initialScreenViewController.view];
[window makeKeyAndVisible];
return YES;

Когда пользователь успешно проходит аутентификацию, я удаляю вид входа в систему:

[self.view removeFromSuperview];

Все это прекрасно работает за одним небольшим исключением. На первой вкладке моего контроллера панели вкладок есть метки, которые заполняются в зависимости от того, с кем пользователь вошел в систему. Однако, поскольку это представление фактически загружается за экраном входа в систему до того, как пользователь даже прошел аутентификацию, оно не отображается правильно после аутентификации.

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

Спасибо! Jason

1 Ответ

1 голос
/ 09 марта 2011

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

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

...