Не загружается viewDid или не отображается при переключении вкладок — могу ли я использовать NSNotification?

#objective-c #cocoa-touch #ios #uiviewcontroller #uitabbar

#objective-c #cocoa-touch #iOS #uiviewcontroller #uitabbar

Вопрос:

Когда я переключаю вкладки в своем приложении на панели вкладок, одно из моих представлений нуждается в обновлении, поскольку пользователь, возможно, изменил настройки, которые влияют на него. Это UIViewController представление, но при переключении представлений viewDidLoad / Appear методы не вызываются. Можно ли это решить с помощью NSNotification или любым другим способом? Пожалуйста, приведите пример кода, особенно для NSNotification s, поскольку я новичок в них.

Комментарии:

1. Почему они не вызываются? Вы используете UITabBarController объект или просто UITabBar ?

2. Все приложение работает на UITabBarController, но представление, о котором я говорю, является подвидом одной из вкладок. Я просто хочу знать, как заставить его обновляться при переключении вкладок.

3. Итак, это [TabBarController]->[ViewController]->[view]->[yourView] (который управляется контроллером представления). Я правильно определил путь?

4. да, только есть еще один вид и контроллер просмотра после первого контроллера просмотра и представления

Ответ №1:

Возможно, вы захотите заглянуть в UITabBarControllerDelegate и tabBarController:didSelectViewController: . Там вы можете определить, как обрабатывать изменение представления и нужно ли обновлять представление на основе возможного изменения предпочтений.

Ответ №2:

TabBarController:didSelectViewController: вы можете реализовать этот метод в appdelegate. вы получите корневой контроллер просмотра sxact, на который нажал yopu. затем вы можете обновить это представление.