Ответ 1
Какой бы код вы не писали в viewDidLoad
, добавьте его в viewWillappear()
. Это решит вашу проблему.
Мне нужно обновить view controller
при нажатии на определенную кнопку. Простое включение viewDidLoad()
, похоже, не работает для того, что мне нужно делать. Однако, когда я оставляю view controller
, а затем возвращаюсь к нему, он работает отлично?
Как обновить/перезагрузить view controller
, как если бы я оставил его, вернитесь к нему, даже не покинув его?
Какой бы код вы не писали в viewDidLoad
, добавьте его в viewWillappear()
. Это решит вашу проблему.
Вы не должны вызывать метод viewDidLoad вручную. Вместо этого, если вы хотите перезагрузить какие-либо данные или любой пользовательский интерфейс, вы можете использовать это:
override func viewDidLoad() {
super.viewDidLoad();
let myButton = UIButton()
// When user touch myButton, we're going to call loadData method
myButton.addTarget(self, action: #selector(self.loadData), forControlEvents: .TouchUpInside)
// Load the data
self.loadData();
}
func loadData() {
// code to load data from network, and refresh the interface
tableView.reloadData()
}
Всякий раз, когда вы хотите перезагрузить данные и обновить интерфейс, вы можете вызвать self.loadData()
Это может быть немного поздно, но вы пытались вызвать loadView()
?
В Swift 4:
self.view.layoutIfNeeded()
При любом вызове точки, когда вы хотите перезагрузить viewController View или любое представление
<View you want to reload>.setNeedsLayout()
<View you want to reload>.layoutIfNeeded()