如何在首次启动应用程序时添加 iOS 叠加视图?
How to add iOS Overlay View on first app launch?
我想像在本机 iOS 应用程序中一样,在我的应用程序首次启动时添加叠加视图,例如如此屏幕截图所示。
这怎么可能?有专门的 class/view 吗?
谢谢。
使用 UserDefaults
存储一个标志,例如“didShowIntro”。已设置该标志时不显示简介。
叠加层本身看起来像一个常规的 UIViewController
模态显示,即 self.isModalInPresentation = true
您可以添加一个 InitialViewController 并执行类似于我在此覆盖方法上实现它的方式:
注意:我的 InitialViewController 是 运行 的第一件事,我检查它是否是用户第一次打开应用程序,如果是第一次,我会使用方法显示模态我放在下面,如果不是第一次打开,我只显示 MainViewController(或者你的 HomeViewController 或者你想要的其他视图)
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// For making the connection with SplashScreenViewController so it could pass data back
if segue.destination is SplashScreenViewController {
let vc = segue.destination as? SplashScreenViewController
vc?.delegate = self
}
}
编辑:这是包含我的观点的故事板的样子
这是我的应用首次启动时的样子
我想像在本机 iOS 应用程序中一样,在我的应用程序首次启动时添加叠加视图,例如如此屏幕截图所示。 这怎么可能?有专门的 class/view 吗?
谢谢。
使用 UserDefaults
存储一个标志,例如“didShowIntro”。已设置该标志时不显示简介。
叠加层本身看起来像一个常规的 UIViewController
模态显示,即 self.isModalInPresentation = true
您可以添加一个 InitialViewController 并执行类似于我在此覆盖方法上实现它的方式:
注意:我的 InitialViewController 是 运行 的第一件事,我检查它是否是用户第一次打开应用程序,如果是第一次,我会使用方法显示模态我放在下面,如果不是第一次打开,我只显示 MainViewController(或者你的 HomeViewController 或者你想要的其他视图)
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// For making the connection with SplashScreenViewController so it could pass data back
if segue.destination is SplashScreenViewController {
let vc = segue.destination as? SplashScreenViewController
vc?.delegate = self
}
}
编辑:这是包含我的观点的故事板的样子
这是我的应用首次启动时的样子