У меня есть несколько контроллеров, связанных с контроллером TabBar. Каждый раз, когда я переключаюсь с одной вкладки на другую, отображается предыдущий контроллер. Я подумал, что когда я выбираю вкладку, создается новый контроллер и отображается его новый вид. Возможно ли иметь такое поведение, а не представление, подобное тому, которое было, когда оно было скрыто?Контроллер в UITabBarController
ответ
Чтобы ответить на ваш вопрос с небольшим количеством деталей, вы можете использовать метод viewDidAppear. Таким образом, вы можете обновить свой пользовательский интерфейс, а также не перезагружать viewController, вызывая возможные проблемы с памятью.
override func viewDidLoad() {
// all UI items will be changed here upon the first instantiation of the viewController.
super.viewDidLoad()
print("loaded FirstViewController viewDidLoad()")
}
override func viewDidAppear(_ animated: Bool) {
// reload your UI elements here if you want and update between switching viewControllers.
print("loaded FirstViewController viewDidAppear()")
}
В старые времена не был метод viewDidUnload
, однако в соответствии с документацией компании Apple:
Просмотров больше не продувают в условиях низкой памяти и поэтому этот метод никогда не вызывается.
Вы можете использовать didReceiveMemoryWarning
, но когда дело доходит до просмотра контроллеров я позволил UIKit и ARC сделать его работу и выпустить VC, когда это необходимо.
thks. И как мне перезагрузить пользовательский интерфейс? (это разделенный вид). Я хочу, чтобы просмотр детали рухнул, и TableView прокручивается вверх. – user3239711
Вы можете обновить пользовательский интерфейс в блоке конкурса ваших сетевых запросов и т. Д. Это зависит от того, что обновляет. – Jahoe
Вы имели в виду переключение вкладок и обновление пользовательского интерфейса недавно представленного VC? – Jahoe
Да. Я думал, что после переключения с одной вкладки на другую новый VC является instatiate (и, следовательно, новым представлением). Когда я покидал эту вкладку, я думал, что VC отброшен. Кажется, что я ошибаюсь в этом, потому что взгляды остаются такими же, как они были до переключения. Вы согласны ? – user3239711
Представления сохраняются в памяти до тех пор, пока не будет выдано предупреждение о сохранении памяти, и затем они будут выпущены. UIKit будет иметь дело с этой стороной для вас. – Jahoe