目前我的想法如下:
当现有用户登录他们的帐户时,他们将从AuthVC中获取 - > MainVC。
如果用户需要注册,则来自AuthVC - > RegisterVC。重新编号后,它们将被带到MainVC
我想要的是在用户注册时在MainVC的顶部呈现另一个VC。所以他们来自ReigsterVC - > MainVC,但在他们可以与ManVC交互之前,新的VC将弹出顶部以显示欢迎消息
这个额外的VC将显示欢迎信息并解释应用程序等。
问题在于,我不确定如何用segue实际做这件事。我正在考虑如下事项:如果来自Registervc = true,那么现在的WelcomeMessageVC'或类似的东西......
我想到的另一个想法是将欢迎消息放在MainVC上,但除非从RegisterVC中被隐藏,否则隐藏 - 虽然我想避免这个想法,因为我已经设计并创建了我的所有vc和WelcomeMessageVC是一个单独的VC。
什么是最好/最简单的工作方式?
另一个想法 - 是否可以通过使用Firebase Auth来执行此操作,例如if语句说明用户是否刚刚创建,是否存在WelcomeMessageVC,以及现有用户是否存在MainVC?
谢谢,
杰里米
答案 0 :(得分:1)
创建欢迎视图控制器。在故事板上,创建一个segue并命名。
在用户默认值中存储布尔值,以跟踪此人是否看到了欢迎屏幕。
在视图控制器viewWillAppear中:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear( animated )
showWelcome()
}
func showWelcome() {
var wasHereBefore = UserDefaults.standard.bool(forKey: "wasHereBefore")
// Do we have a value?
if wasHereBefore == nil {
wasHereBefore = false
}
if wasHereBefore == false {
// Store the value so this only happens once
UserDefaults.standard.set(true, forKey: "wasHereBefore")
performSegue(withIdentifier: "WelcomeSegue", sender: self)
}
}
答案 1 :(得分:0)
我使用singleton来解决这个问题。如您所愿,MainVC总是被加载,但取决于用户是否登录或需要注册。首先,创建一个启动器类作为单例。并使用该类初始化您的主视图控制器,并在检查用户是否需要登录等并调用该视图之前。一旦完成,将关闭该视图,您的主视图控制器将在那里初始化。甚至根据您的要求进行更改。
进一步了解,我希望你会欣赏它。