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?
Unabhängig davon, welchen Code Sie in viewDidLoad
schreiben, versuchen Sie, diesen in viewWillappear()
hinzuzufügen. Ich denke, das wird dein Problem lösen.
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.
Dies könnte etwas spät sein, aber haben Sie versucht, loadView()
aufzurufen?
In Swift 4:
self.view.layoutIfNeeded()
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()