Ich habe eine Tabelle Anzeigen, dass Remote-Daten aus dem Backend abrufen, die alles funktioniert, was ich versuche zu erreichen ist, wenn Benutzer auf eine Zelle klicken, um zu anderen ViewController (Details Controller) zu navigieren und wenn die Zurück-Taste gedrückt wird, sollte die Tabellenansicht zu der ausgewählten Zelle rollen und nicht nach oben gehen. Ich habe versucht tableView.scrollToRow
wie unten gezeigt, aber es funktioniert nicht? Ich weiß, dass ich tableView.reloadData()
in meinem Laden von Daten bin Aufruf funktionieren andere weise es nichtUITableView zur ausgewählten Zelle nach der Navigation scrollen
class feeds: UITableViewController {
var data = [AnyObject]()
override func viewDidLoad() {
super.viewDidLoad()
LoadData()
}
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return data.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "reuseIdentifier", for: indexPath)
// configur tabl cell
return cell
}
func LoadData(){
// Fetch Feeds to dataArray
// Reload UITable View
self.tableView.reloadData()
let celloffset = UserDefaults.standard.integer(forKey: "celloffset")
if celloffset != 0{
let index = IndexPath(item: celloffset, section: 0)
self.tableView.scrollToRow(at: index, at: UITableViewScrollPosition.middle, animated: false)
}
}
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
UserDefaults.standard.set(indexPath.row, forKey: "celloffset")
// Navigate to Details VC
}
}
Jede Hilfe oder Ideen viel wird geladen wird geschätzt
Dank für Ihre Antwort, aber ich bin unten Fehler ' 'NSRangeException', Grund bekommen:‚- [UITableView _contentOffsetForScrollingToRowAtIndexPath: atScrollPosition:]: Zeile (7) über Grenzen (5) zum Abschnitt (0) .'' –
Sie versuchen, zu einer Zeile zu blättern, die nicht existiert. –
Ich weiß, was es bedeutet, mein Array hat 25 Zeilen nach dem Laden Ich wählte Zelle Nr. 7, wenn Sie zurück drücken, der Fehler ist aufgetreten ich denke, es ist, weil die Daten neu geladen werden! –