ios - 登录后切换 View Controller ......最佳实践

标签 ios swift uiview xcode6

我已经成功设置了我的应用程序流逻辑,除了登录之外,一切似乎都运行良好。我想让用户保持登录状态,以便在重新打开应用程序时首先显示个人资料屏幕。现在我有代码..

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/

相关文章:

ios - 从 .scn 文件加载后无法在 ARKit 场景中查看几何体

ios - NSMutableArray始终转换为NSArray

ios - popToViewController 和内存管理

ios - 添加到 Stackview subview 的 CAShapeLayers 仅在一个 subview 上呈现

arrays - 快速数组存储数据

ios - 自定义 UITableViewCell 的自动布局约束在运行时失败

ios - 如何强制 UIView 的 layoutSubviews?

ios - 键入时在自定义 UITextField 上格式化为电话号码

ios - 空字符串使 Swift 有条件地崩溃

objective-c - 具有淡入淡出或模糊效果的 UIView 边框