如果在发布时没有其他用户登录,我正在使用登录用户的应用程序。这样,要显示的第一个视图应该是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()来决定哪个视图加载,但问题是使该视图与故事板和导航控制器一起工作。 有什么建议吗?
答案 0 :(得分:1)
基本上,您将拥有两个不同的视图控制器,一个用于登录屏幕(VCLogin
),另一个用于主菜单(VCMainMenu
)。现在,在你的AppDelegate
中,有一些方法被调用,当应用程序出现时分别启动。因此,放置代码检查用户是否已登录,并使相应的视图控制器成为根视图控制器,例如。
let navigationController = window.rootViewController as UINavigationController
navigationController.rootViewController =
userIsLoggedIn ? mainMenuViewController : loginViewController