2016-10-18 6 views
0

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

+0

Вы имели в виду переключение вкладок и обновление пользовательского интерфейса недавно представленного VC? – Jahoe

+0

Да. Я думал, что после переключения с одной вкладки на другую новый VC является instatiate (и, следовательно, новым представлением). Когда я покидал эту вкладку, я думал, что VC отброшен. Кажется, что я ошибаюсь в этом, потому что взгляды остаются такими же, как они были до переключения. Вы согласны ? – user3239711

+0

Представления сохраняются в памяти до тех пор, пока не будет выдано предупреждение о сохранении памяти, и затем они будут выпущены. UIKit будет иметь дело с этой стороной для вас. – Jahoe

ответ

1

Чтобы ответить на ваш вопрос с небольшим количеством деталей, вы можете использовать метод 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, когда это необходимо.

+0

thks. И как мне перезагрузить пользовательский интерфейс? (это разделенный вид). Я хочу, чтобы просмотр детали рухнул, и TableView прокручивается вверх. – user3239711

+0

Вы можете обновить пользовательский интерфейс в блоке конкурса ваших сетевых запросов и т. Д. Это зависит от того, что обновляет. – Jahoe

 Смежные вопросы

  • Нет связанных вопросов^_^