我已经成功设置了我的应用程序流逻辑,除了登录之外,一切似乎都运行良好。我想让用户保持登录状态,以便在重新打开应用程序时首先显示个人资料屏幕。现在我有代码..
override func viewDidAppear(animated: Bool) {
var currentUser = PFUser.currentUser()
println(currentUser.objectId as String)
if currentUser != nil {
self.performSegueWithIdentifier("loginsuccess", sender: nil)
} else {
// Show the signup or login screen
}
}
它可以工作,但似乎太慢了,登录屏幕会快速闪烁一秒钟。我一直在寻找一种更简洁的方法来执行此操作,但没有找到太多。
最佳答案
在这种流程中,我通常使用 window 的 rootViewController。例如
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
if ([UserDefaultsSingleTon IsUserLogin])
{
[self SetRootToHomeView];
}
else
{
[self SetRootToLoginView];
}
return YES;
}
-(void)SetRootToLoginView
{
self.loginController = [[LoginController alloc] initWithNibName:@"LoginController" bundle:nil];
self.window.rootViewController = self.loginController;
[self.window makeKeyAndVisible];
}
-(void)SetRootToHomeView
{
self.homeController = [[HomeController alloc] initWithNibName:@"HomeController" bundle:nil];
self.window.rootViewController = self.homeController;
[self.window makeKeyAndVisible];
}
然后当登录成功或注销时,您可以在两个 Controller 之间切换。通过使用 appdelegate 引用调用这些方法。
关于ios - 登录后切换 View Controller ......最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28366407/