10 Stimmen

viewWillAppear in Viewcontrollern einer Tabbar

In meiner Tab-Leiste habe ich vier Viewcontroller, und was in einem geschieht, kann die Ansicht des anderen beeinflussen, so dass ich möglicherweise einige Elemente im Viewcontroller neu laden muss, wenn er sichtbar wird. Normalerweise würde ich das beheben, indem ich viewWillAppear implementiere, aber wenn ich zwischen den Registerkarten wechsle, scheint viewWillAppear nicht aufgerufen zu werden. Wie kann ich das beheben, oder was sollte ich stattdessen tun?

Update: als PS sollte ich hinzufügen, dass dies ein Tabbarcontroller in einer Navigationcontroller-Hierarchie ist

Prost

Nik

10voto

Radix Punkte 3619

Sie können die Tabbar-Controller-Delegat funktioniert wie ein Charme zu verwenden

\-(void)tabBarController:(UITabBarController \*)tabBarController didSelectViewController:(UIViewController \*)viewController
{
    \[viewController viewWillAppear:YES\];

}

1voto

Sam Punkte 3551

Bitte lesen Sie meine Antwort hier

iPhone viewWillAppear wird nicht ausgelöst

1voto

Brian Ogden Punkte 17156

Und falls Sie diese Frage finden, weil Sie etwas in der Datenbank aktualisieren möchten UITabBarController selbst, nicht die UIViewControllers eines UITabBarController wie die Frage des Auftraggebers. Zum Beispiel, Ausblenden oder Anzeigen eines benutzerdefinierten UITabBarButton . In Swift 3.0 wird das Überschreiben setNeedsStatusBarAppearanceUpdate meiner UITabBarController Klasse hat bei mir funktioniert.

override func setNeedsStatusBarAppearanceUpdate() {

}

-1voto

tadejsv Punkte 1988

viewWillAppear sollte nur verwendet werden, wenn die Ansicht erscheint, und nicht, um sie zu aktualisieren.

使用する setNeedsDisplay über die viewController stattdessen die Ansicht der Kommission.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X