选择在 swift 中加载视图的正确方法或事件
Right way or event to choose what view load in swift
我正在开发一个应用程序,如果在启动时没有其他用户登录,则该应用程序会登录一个用户。这样,第一个出现的视图应该是登录视图。但是在已经有登录用户的情况下,出现的第一个视图应该是主菜单。我用 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() 来决定加载什么视图,但问题是让该视图与故事板和我的导航控制器一起工作。
有什么建议吗?
基本上您将有两种不同的视图控制器,一种用于登录屏幕 (VCLogin
),另一种用于主菜单 (VCMainMenu
)。现在,在您的 AppDelegate
中,有一些方法会在应用程序出现时分别启动。因此,将检查用户是否登录的代码放在那里,并使适当的视图控制器成为根视图控制器,例如
let navigationController = window.rootViewController as UINavigationController
navigationController.rootViewController =
userIsLoggedIn ? mainMenuViewController : loginViewController
我正在开发一个应用程序,如果在启动时没有其他用户登录,则该应用程序会登录一个用户。这样,第一个出现的视图应该是登录视图。但是在已经有登录用户的情况下,出现的第一个视图应该是主菜单。我用 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() 来决定加载什么视图,但问题是让该视图与故事板和我的导航控制器一起工作。 有什么建议吗?
基本上您将有两种不同的视图控制器,一种用于登录屏幕 (VCLogin
),另一种用于主菜单 (VCMainMenu
)。现在,在您的 AppDelegate
中,有一些方法会在应用程序出现时分别启动。因此,将检查用户是否登录的代码放在那里,并使适当的视图控制器成为根视图控制器,例如
let navigationController = window.rootViewController as UINavigationController
navigationController.rootViewController =
userIsLoggedIn ? mainMenuViewController : loginViewController