如何关闭应用程序中的中间控制器?

How do I close the intermediate controller in the application?

我正在制作一个应用程序的原型。

当用户打开应用程序时,他进入主屏幕,在主屏幕上有“登录”按钮,单击此按钮后,用户打开一个新的 window 一键“登录”,之后用户进入第三个屏幕。

在第三个屏幕上,有一个“退出”按钮,按下该按钮后,应该 return 到应用程序的主屏幕。

示例图片如下:

Sample application

我想当从第二个屏幕切换到第三个屏幕时,应该删除第二个屏幕,以便只有主屏幕和第三个屏幕在应用程序的内存中,并且当按下 SignOut 按钮时,用户去掉第三屏,他内存里只有主屏

怎么做才对?

MARK - 目前我正在使用 segue 从一个屏幕移动到另一个屏幕,并使用 unwindSegue 关闭屏幕。 (此外,我正在教导我可能需要 dismiss,但我不确定)

使用UINavigationController:

  1. 将您的第一个控制器设置为 rootViewController 属性:

didFinishLaunchingWithOptions 方法中使用 AppDelegate.swift 中的代码:

let navigationController = UINavigationController(rootViewController: your_controller_1)
self.window?.rootViewController = navigationController
self.window?.makeKeyAndVisible() 

或者如果您使用故事板,请使用您的 firstViewController 设置入口点并将其嵌入 UINavigationController

  1. 然后使用您的 navigationController self.navigationController.push(...) 导航到您的第二个和第三个屏幕。

  2. 使用 UINavigationControllerfunc popToRootViewController(animated: Bool) -> [UIViewController]? 转到您的第一个控制器 rootViewController。

https://developer.apple.com/documentation/uikit/uinavigationcontroller