sieht es so aus, als ob Sie einen guten Start haben. Da Sie ein Tabbar-Design haben, müssen Sie entscheiden, wie Sie die Login-Seite präsentieren und wann Sie das tun.
Sie müssen es entweder präsentieren, bevor die Registerkarte angezeigt wird, oder Logik in Ihrem ersten View-Controller setzen, um den Anmeldevorgang einzuleiten. Es gibt auch andere Möglichkeiten, aber sie werden komplizierter und ich wollte dir jetzt grundlegende Entscheidungen geben.
Hier ist das allgemeine Konzept, das ich empfehlen würde.
a) Erstellen Sie eine permanente Speichervariable, um festzustellen, ob ein Benutzer angemeldet ist oder nicht.
b) fügen Sie eine Überprüfung für dieses Flag in der View laden Methode des ersten View-Controllers hinzu, der an Ihre Registerkarte angehängt ist.
c) eine modale Anmeldeseite direkt vom View-Controller anzeigen. Wenn sie sich anmelden, dann lehnen sie es ab, wenn nicht, bleiben sie auf der modalen Seite stecken.
so, hier ist im Grunde, wie das tun:
zum Zweck der Erläuterung, ich Ihren ersten View-Controller aufrufe würde gehen - ersten Reiter auf Tabbar Controller - fviewController - ok?
in fviewController.m
-(void)viewDidLoad {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([[defaults objectForKey:@"loggedIn"]boolValue]) {
NSLog(@"user is logged in - do nothing");
}
else {
NSLog(@"User is not logged in");
[self performSegueWithIdentifier:@"LoginPage" sender:self];
}
}
ein paar mehr Punkte es sieht aus wie Sie Storyboards und segues verwenden.In diesem Fall würden Sie die folgenden Schritte aus:
- einen neuen View-Controller für Ihre Login-Seite
- Steuer zieht eine segue Verbindung, um es von den ersten View-Controller in Ihrer Tabbar
- identifizieren die Segue erstellen, wie „modal“
- Kiste eine neue view-Controller-Klasse für den Login-view-Controller
- Ihre Ansicht präsentieren und verwalten Sie Ihre Authentifizierung
- , wenn der Benutzer angemeldet ist, können Sie das zurück zu dem NSUserDefaults speichern müssen Hinweis: Wenn Sie mehrere Benutzer oder andere Schemata haben, möchten Sie möglicherweise den einzelnen Wert ändern, den ich Ihnen im Beispielstatus "Verfolgen" für den aktuellen Benutzer gezeigt habe. Auch: Wenn Sie Abmelde-Code haben, müssen Sie das Flag korrekt einstellen. Auch: Wenn Benutzer sich häufig an- und abmelden, wird die Ansicht verwenden anstelle der Ansicht geladen angezeigt.
den Status So spiegeln:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setValue:[NSNumber numberWithBool:YES] forKey:@"loggedIn"]; //in
[defaults setValue:[NSNumber numberWithBool:NO] forKey:@"loggedIn"]; //out
do this in your login controller
die modale Ansicht zu schließen. Technisch sollten Sie einen Delegaten Rückruf verwenden, dies zu tun, aber wenn man die Dinge einfach zu halten versuchen, sollte dies in Ordnung sein
[self dismissViewControllerAnimated:YES completion:^{
}];
So Ihre Logik so sein würde - haben sie anmelden? Ja, dann setzen Sie den YES-Status für eingeloggt und dann entlassen. Wenn sie sich nicht anmelden, tun Sie nichts. Sie stecken fest.
Schließlich, wenn Sie Ihren Login-Controller einrichten müssen, würden Sie die Methode: prepareForSegue ... verwenden, um Variablen zu initialisieren, bevor das Segment auftritt. Sie haben wahrscheinlich darüber gelesen, wenn Sie einige Tutorials machen.
Nun ... hoffe, das hilft. Es ist ein sehr grundlegender Ansatz. Wenn dies funktioniert, können Sie während des Betriebs weitere Sicherheitsfunktionen hinzufügen.
viel Glück.
Ich brauche etwas Klarheit, Sie haben 1 Tab-Leiste mit 2 Icons & eins für die Öffentlichkeit und ein anderes für nicht-öffentliche, die vor Authentifizierung schützt, richtig? –
@KumarKl Nein. Nur eine Registerkarte, die jetzt zwei Registerkarten enthält. Der Anmeldebildschirm hat nur eine Navigationsleiste, um den Login-Button zu setzen. – aVC
K Ich habe es .. warten, ich werde ein paar Sachen setzen –