2017-04-13 4 views
1

Ich brauche auf den ganzen Weg Tabellenansicht scrollen, wenn die Tab-Leiste Element auswählen. Ich habe das versucht, aber es funktioniert nicht.Scroll Tableview nach oben, wenn Tab-Leiste tippen

func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) { 
    let tabBarIndex = tabBarController.selectedIndex 
    if tabBarIndex == 0 { 

     let indexPath = NSIndexPath(row: 0, section: 0) 
     MyViewController().tableView.scrollToRow(at: indexPath as IndexPath, at: .top, animated: true) 
    } 
} 

Die Methode wird aufgerufen, aber die Tabelle wird nicht nach oben geblättert.

Antwort

5

Das Problem ist, dass Sie ein neues MyViewController Beispiel sind die Schaffung und nicht an den auf dem Bildschirm zugreifen. Sie möchten auf den bereits erstellten viewController zugreifen, und zum Glück übergibt Ihnen diese Delegate-Methode diese Aufgabe.

Ändern Sie diese Zeile

MyViewController().tableView.scrollToRow(at: indexPath as IndexPath, at: .top, animated: true) 

zu

let myViewController = viewController as? MyViewController 
myViewController.tableView.scrollToRow(at: indexPath as IndexPath, at: .top, animated: true) 
-1
self.tableviewObject.scrollToRowAtIndexPath(indexPath, atScrollPosition: .Top, animated: true) 
Verwandte Themen