2016-06-09 3 views
0

Ich konvertiere meine Android App in iOS. Ich habe bereits den Login-Bildschirm erstellt und ein Benutzer kann sich anmelden. Wenn er die korrekten Zugangsdaten eingibt, werden seine Daten mit NSUSerDefault gespeichert.Starten eines anderen Storyboards abhängig vom Login-Status des Benutzers beim Booten (Xamarin.iOS)

Was ich nicht weiß ist, wie man das erreicht, wenn die App startet überprüft es die NSUserDefault für die Werte und entscheidet, ob sich der Benutzer anmelden muss oder nicht.

Da Segues kann nicht programmgesteuert wie in Android gemacht werden (StartActivity()) und brauche eine Schaltfläche oder etwas ähnliches, was wäre die Lösung für mein Problem?

+0

Sie wahrscheinlich brauchen 2 nicht anders Storyboards. Ich beginne normalerweise immer mit dem Login-View-Controller und lasse das nach Anmeldeinformationen suchen. Wenn es erfolgreich ist, schiebt es den nächsten View-Controller und entfernt sich selbst vom Stack. Das hängt wirklich von Ihrer Hierarchie ab, verwenden Sie einen 'UINavigationController'? Andernfalls können Sie den 'Window.RootViewController' in Ihrem App-Delegaten ändern, um den Ansichtscontroller zu ersetzen. Als eine Nebenbemerkung ist 'NSUserDefault' kein guter Ort für Anmeldeinformationen. Anmeldeinformationen gehören in die Key Chain. – dylansturg

Antwort

0

auf AppDelegate Klasse:

public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions) 
     { 

      // Override point for customization after application launch. 
      // If not required for your application you can safely delete this method 


      UIViewController yourViewController = UIStoryboard.FromName("yourStoryboard",NSBundle.MainBundle).InstantiateViewController("yourViewController_StoryboardID"); 


      this.Window = new UIWindow(UIScreen.MainScreen.Bounds); 
      UINavigationController navigationController = new UINavigationController(yourViewController); 

      this.Window.RootViewController = navigationController; 
      this.Window.MakeKeyAndVisible(); 


      return true; 
     } 
Verwandte Themen