2016-08-12 4 views
0

Ich habe eine benutzerdefinierte tableView mit einer Kopfzeile und einigen Abschnitten. Ich verwende Tabs zwischen drei ViewControllern. ViewController mit tableView ist meine Homepage der App. Wenn ich die App zum ersten Mal öffne, ist alles in Ordnung. Aber wenn ich meine tableView nach unten scrolle und dann zu einer anderen viewController über die Registerkarte gehe und zu meinem Home-Bildschirm zurückkomme, wird TableView mit dem Abschnitt angezeigt, wo ich gegangen bin. Ich möchte, dass es mit Header präsentiert wird (mein ViewController sollte von oben statt von Mitte dargestellt werden). Hier sind die Screenshots.Präsentation TableView mit Header anstelle von mittleren Abschnitt oder Fußzeile

Das ist mein Home-Bildschirm

enter image description here


Und wenn ich nach unten scrollen, wie unten

enter image description here

Und zum nächsten Bildschirm bewegen Sie mit unter tabBar


enter image description here

Das ist, was ich, wenn ich zu Hause Bildschirm kommen zurück


enter image description here

Sollte es nicht wie beim ersten Mal präsentiert werden?

+1

Dies passiert, weil der Tab-Bar-Controller die Tabellenansicht nicht erneut lädt. Möglicherweise müssen Sie Ihre TableView nach oben scrollen, wenn jemand die Registerkarte zu Ihrem Home-Controller wechselt. – Harsh

Antwort

1

Fügen Sie in Ihrer ersten Registerkarte viewControllers folgenden Code in viewWillAppear() Methode.

let scrollPoint = CGPoint(x: 0, y: 0) 
self.tableView.setContentOffset(scrollPoint, animated: false) 
+0

es funktioniert danke – Byte

+1

Wenn Sie 'scrollToRowAtIndexPath' verwenden, kann es abstürzen, wenn Sie diesen' indexPath' nicht haben, deshalb gebe ich Ihnen eine Antwort mit 'setContentOffset'. Wenn Ihr TableView keine Daten enthält, wird es auch nicht abstürzen. –

+0

ohh danke für die Erklärung :-) – Byte

1

Was Sie vielleicht tun müssen, ist, implementieren die Delegierten

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 

Jetzt in diesem Delegat, wenn Ihr Haus-View-Controller ausgewählt wird, Zugriff auf den Tisch und blättern Sie es programmatisch zu dem op.

Verwandte Themen