在启动屏幕关闭后立即显示一个特定的视图控制器
Presenting a specific view controller once immediately after launch screen closes
我有一个单屏视图控制器教程。我希望本教程 VC 只显示一次 (userdefaults),但我希望从启动屏幕完成时平稳过渡 -> 教程 VC.
现在 - 启动屏幕完成,然后应用程序的主界面显示一瞬间,然后显示教程 VC。我想去掉主界面的这个"flashing"
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
if !didShowTut {
fireTutorial()
didShowTut = true
}
}
func fireTutorial() {
let tutVC = UIStoryboard(name: "FirstTutorial", bundle: nil).instantiateViewController(withIdentifier: "TutorialSBID") as UIViewController
tutVC.modalPresentationStyle = .overCurrentContext
self.present(tutVC, animated: false, completion: nil)
}
任何帮助创建从启动屏幕 -> 教程 VC 的平滑过渡的帮助将不胜感激。
将此代码写入 viewWillAppear 或 viewWillLayoutSubviews() 而不是 viewDidAppear
您正在加载屏幕后执行的 viewDidAppear 函数中显示 tutVC。
尝试在 override func viewDidLoad()
或在加载屏幕之前执行的 override func viewWillAppear(_ animated: Bool)
方法上调用 fireTutorial()。
我采用了稍微不同的方法来解决这个问题。
我将主应用程序 VC 嵌入到导航控制器中,然后在 App Delegate didFinishLaunchingWithOptions 中推送教程VC。
let tutorialVC = UIStoryboard(name: "FirstTutorial", bundle: nil)
let firstVC = tutorialVC.instantiateViewController(withIdentifier: "TutorialSBID") as UIViewController
if let navigationController = self.window?.rootViewController as? UINavigationController
{
navigationController.pushViewController(firstVC, animated: false)
}
return true
我有一个单屏视图控制器教程。我希望本教程 VC 只显示一次 (userdefaults),但我希望从启动屏幕完成时平稳过渡 -> 教程 VC.
现在 - 启动屏幕完成,然后应用程序的主界面显示一瞬间,然后显示教程 VC。我想去掉主界面的这个"flashing"
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
if !didShowTut {
fireTutorial()
didShowTut = true
}
}
func fireTutorial() {
let tutVC = UIStoryboard(name: "FirstTutorial", bundle: nil).instantiateViewController(withIdentifier: "TutorialSBID") as UIViewController
tutVC.modalPresentationStyle = .overCurrentContext
self.present(tutVC, animated: false, completion: nil)
}
任何帮助创建从启动屏幕 -> 教程 VC 的平滑过渡的帮助将不胜感激。
将此代码写入 viewWillAppear 或 viewWillLayoutSubviews() 而不是 viewDidAppear
您正在加载屏幕后执行的 viewDidAppear 函数中显示 tutVC。
尝试在 override func viewDidLoad()
或在加载屏幕之前执行的 override func viewWillAppear(_ animated: Bool)
方法上调用 fireTutorial()。
我采用了稍微不同的方法来解决这个问题。
我将主应用程序 VC 嵌入到导航控制器中,然后在 App Delegate didFinishLaunchingWithOptions 中推送教程VC。
let tutorialVC = UIStoryboard(name: "FirstTutorial", bundle: nil)
let firstVC = tutorialVC.instantiateViewController(withIdentifier: "TutorialSBID") as UIViewController
if let navigationController = self.window?.rootViewController as? UINavigationController
{
navigationController.pushViewController(firstVC, animated: false)
}
return true