web-dev-qa-db-fra.com

Swift: Recharger un contrôleur de vue

J'ai besoin d'actualiser un view controller lorsqu'un certain bouton est exploité. Activer simplement viewDidLoad() ne semble pas fonctionner pour ce que je dois faire. Cependant, quand je quitte le view controller puis que j'y reviens, il semble fonctionner parfaitement?

Comment puis-je actualiser/recharger un view controller comme si je l'avais laissé puis y revenir sans jamais le quitter?

20
Matt Spoon

Quel que soit le code que vous écrivez dans viewDidLoad, essayez d’ajouter cela dans viewWillappear(). Je pense que cela résoudra votre problème.

14
iAnurag

Vous ne devez pas appeler la méthode viewDidLoad manuellement, .__ Si vous souhaitez recharger des données ou une interface utilisateur, vous pouvez utiliser ceci:

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()
}

Chaque fois que vous souhaitez recharger les données et actualiser l'interface, vous pouvez appeler self.loadData ()

8
Edward Anthony

C'est peut-être un peu tard, mais avez-vous essayé d'appeler loadView()?

3
Ahmed Khedr

Dans Swift 4:

self.view.layoutIfNeeded()
1
Sandeep Vishwakarma

À tout moment, appelez quand vous voulez recharger la vue de viewController ou une vue

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