Swift: перезагрузить контроллер вида

Мне нужно обновить view controller при нажатии на определенную кнопку. Простое включение viewDidLoad(), похоже, не работает для того, что мне нужно делать. Однако, когда я оставляю view controller, а затем возвращаюсь к нему, он работает отлично?

Как обновить/перезагрузить view controller, как если бы я оставил его, вернитесь к нему, даже не покинув его?

Ответ 1

Какой бы код вы не писали в viewDidLoad, добавьте его в viewWillappear(). Это решит вашу проблему.

Ответ 2

Вы не должны вызывать метод 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()

Ответ 3

Это может быть немного поздно, но вы пытались вызвать loadView()?

Ответ 4

В Swift 4:

self.view.layoutIfNeeded()

Ответ 5

При любом вызове точки, когда вы хотите перезагрузить viewController View или любое представление

<View you want to reload>.setNeedsLayout()
<View you want to reload>.layoutIfNeeded()