webentwicklung-frage-antwort-db.com.de

Swift: Laden Sie einen View Controller neu

Ich muss einen view controller aktualisieren, wenn eine bestimmte Schaltfläche berührt wird. Die einfache Aktivierung von viewDidLoad() scheint nicht für das zu funktionieren, was ich tun muss. Wenn ich jedoch den view controller verlasse, dann komme ich darauf zurück, es scheint perfekt zu funktionieren?

Wie kann ich einen view controller so aktualisieren/neu laden, als ob ich ihn verlassen hätte und dann zurückkomme, ohne ihn jemals zu verlassen?

20
Matt Spoon

Unabhängig davon, welchen Code Sie in viewDidLoad schreiben, versuchen Sie, diesen in viewWillappear() hinzuzufügen. Ich denke, das wird dein Problem lösen.

14
iAnurag

Sie sollten die viewDidLoad-Methode nicht manuell aufrufen Wenn Sie Daten oder Benutzeroberflächen erneut laden möchten, können Sie Folgendes verwenden:

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

Wann immer Sie die Daten neu laden und die Schnittstelle aktualisieren möchten, können Sie self.loadData () aufrufen.

8
Edward Anthony

Dies könnte etwas spät sein, aber haben Sie versucht, loadView() aufzurufen?

3
Ahmed Khedr

In Swift 4:

self.view.layoutIfNeeded()
1

Sie können jederzeit anrufen, wenn Sie die View oder View von viewController neu laden möchten

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