我的iOS应用程序中的用户具有两种状态,即登录和注销。我正在使用Firebase SDK进行身份验证和实时数据库数据传递。
对于已登录的用户,如果某个警报的特定条件为真,我想展示自定义的应用内警报模式。这些条件是日期驱动的,即用户将在某些日期收到特定的警报,而在其他日期则不会。这意味着条件不是由用户输入决定的。
当服务器返回满足特定警报条件的条件时,将有不同的状态。这些是我能想到的:
我的问题是什么是最佳实践?我正在考虑的三种方法(也许都不是最好的)是:
要考虑的切线问题是,当我需要呈现警报视图控制器时,如果已经存在呈现视图控制器,我应该如何处理?我不想打扰用户,所以我希望在当前显示的视图控制器被关闭后将要显示的警报排队。
答案 0 :(得分:0)
您可以在AppDelegate.swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions:
[UIApplicationLaunchOptionsKey: Any]?) -> Bool
您的案例的示例
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions:
[UIApplicationLaunchOptionsKey: Any]?) -> Bool {
//Check if User logged in
if logged
{
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let initialViewController =
storyboard.instantiateViewController(withIdentifier: "yourLoggedinVC")
self.window?.rootViewController = initialViewController
self.window?.makeKeyAndVisible()
} else {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let initialViewController =
storyboard.instantiateViewController(withIdentifier: "yourLoggedOutVC")
self.window?.rootViewController = initialViewController
self.window?.makeKeyAndVisible()
}