我创建了一个ViewController,每次应用程序进入前台时都会显示。这是因为我希望用户每次应用程序进入前台时都会进行身份验证(就像银行应用程序一样)。我以这种方式实现了这个功能:
func applicationDidEnterBackground(_ application: UIApplication) {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: "localauth")
self.window!.rootViewController = controller;
self.window!.makeKeyAndVisible();
}
self.window!是AppDelegate.swift的属性。我自己添加了这个。我不确定这是要走的路:
var window: UIWindow?
当应用程序进入后台时,AppDelegate中的此函数将当前ViewController切换到Auth ViewController。因此,当应用程序再次进入前台时,将显示“localAuth”ViewController。
当用户通过身份验证时,处理身份验证的ViewController会显示下一个ViewController:
self.performSegue(withIdentifier: "localAuthed", sender: self);
LocalAuth ViewController通过名为localAuthed的segue与故事板中的下一个ViewController连接。下一个ViewController是一个NavigationController,因此它显示了嵌入在该NavigationController中的第一个ViewController。
现在发生了什么。显示了右侧嵌入的ViewController,但缺少操作栏的标题。当我等待一段时间后,会出现标题。
我呈现ViewControllers的方式是正确的吗?