2017-02-07 2 views
0

Für einen Einstellungsansicht-Controller speichere ich derzeit, wenn der Benutzer die Zurück-Taste mit viewwilldisappear drückt. Die VC-Einstellungen sind jedoch in einen Tab-Bar-Controller eingebettet, und ich habe festgestellt, dass viewwilldisappear nicht ausgelöst wird und daher die Einstellungen nicht gespeichert werden, wenn der Benutzer die VC verlässt, indem er auf eine andere Registerkarte verschiebt. Ich denke, ich könnte jedes Mal speichern, wenn jemand eine individuelle Einstellung ändert, aber es wäre einfacher, am Ende zu speichern.IOS/Ziel-C. Erkennen von Drücken der Registerkarte in der Registerkartenleiste vor Verlassen der Ansicht Controller

Gibt es eine einfache Möglichkeit, das Drücken der Tab-Bar-Controller von innerhalb der View-Controller zu erkennen, so dass ich vor dem Verlassen Einstellungen speichern kann, wenn ein Tab-Element gedrückt wird?

Antwort

1

Werfen Sie einen Blick auf UITabBarControllerDelegate, insbesondere sollteSelectViewController.

Der Tab-Controller ruft diese Methode als Reaktion darauf auf, dass der Benutzer auf ein Registerkartenelement klopft. Sie können diese Methode verwenden, um dynamisch zu entscheiden, ob eine bestimmte Registerkarte zur aktiven Registerkarte gemacht werden soll.

https://developer.apple.com/reference/uikit/uitabbarcontrollerdelegate?language=objc

+0

I enthalten meine Tab-Leiste Controller in der Schnittstelle des VC und auch das UITabBarController Delegierten Protokoll in der Umsetzung. h Datei. Im Gegenzug habe ich die von Ihnen erwähnte Methode in meine Implementierungsdatei aufgenommen. Die Dokumentation sagt etwas über das Setzen von Delegaten. Folgend wirft Fehler. MainTabVC.delegate = selbst; In jedem Fall wird die Delegate-Methode nicht ausgelöst, wenn ich Tab-Leiste berühre. – Arjun

+0

Um klar zu sein, möchten Sie Ihre "Einstellungen" VC der Delegate sein. Ich habe ein schnelles Beispielprojekt zusammengestellt, das dich auf den Weg bringen soll: https://github.com/DonMag/OCTabbed – DonMag

Verwandte Themen