正确的方式或事件选择swift中的视图加载

时间:2015-01-20 13:09:20

标签: ios swift

如果在发布时没有其他用户登录,我正在使用登录用户的应用程序。这样,要显示的第一个视图应该是Login View。但是在已经有登录用户的情况下,出现的第一个视图应该是主菜单。我使用viewWillAppear函数处理它,它正在工作,但我不知道这是正确的方法或在这种情况下应该如何处理。

这是我的代码。我的第一个视图是MainMenuVC,我在其中控制是否有已登录的用户,然后我选择是保留在主菜单视图中还是按下我的登录视图。

class MainMenuVC: UIViewController {


override func viewWillAppear(animated: Bool) {
    if (UserMgr.users.count == 0){
        var vc1:LoginVC = self.storyboard?.instantiateViewControllerWithIdentifier("LoginView") as LoginVC
        self.navigationController?.pushViewController(vc1, animated: false)
    }
    else
    {
        //I do nothing so this view is loaded
    }


}

我不知道是否应该使用另一个ViewController并实现函数loadView()来决定哪个视图加载,但问题是使该视图与故事板和导航控制器一起工作。 有什么建议吗?

1 个答案:

答案 0 :(得分:1)

基本上,您将拥有两个不同的视图控制器,一个用于登录屏幕(VCLogin),另一个用于主菜单(VCMainMenu)。现在,在你的AppDelegate中,有一些方法被调用,当应用程序出现时分别启动。因此,放置代码检查用户是否已登录,并使相应的视图控制器成为根视图控制器,例如。

let navigationController = window.rootViewController as UINavigationController

navigationController.rootViewController =
    userIsLoggedIn ? mainMenuViewController : loginViewController