在 UINavigationViewController 中保存所有后续的视图控制器状态

Save all subsequent view controller states in UINavigationViewController

我有一个容器 UIViewController 承载单个 UINavigationController。容器视图控制器有一个按钮,通过调用 present(newViewController, animated: true, completion: nil) 打开一个新的视图控制器。

newViewController 有自己的 UINavigationController 并且还包含一个按钮。该按钮可以 present 另一个视图控制器,它本身有一个 UINavigationController 和另一个按钮等等。

我想在尽可能多的迭代中保持该模式并保存所有它们的状态。那可能吗?要关闭当前的视图控制器,我调用 _ = navigationController?.popViewController(animated: true) 但这也会删除前一个视图控制器中的所有数据。

你问了两个问题

1) 想要保持该模式进行尽可能多的迭代并保存所有它们的状态。

答案。 :你不能在已经呈现的视图控制器上连续呈现视图。为此,您首先需要关闭之前呈现的视图。

2) 要关闭我调用的当前视图控制器

 _ = navigationController?.popViewController(animated: true) 

但这也会从之前的视图控制器中删除所有数据。

答案。如果您呈现任何视图控制器,则不要使用 popviewcontroller,而应使用 dismisViewController。