在 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。
我有一个容器 UIViewController
承载单个 UINavigationController
。容器视图控制器有一个按钮,通过调用 present(newViewController, animated: true, completion: nil)
打开一个新的视图控制器。
newViewController
有自己的 UINavigationController
并且还包含一个按钮。该按钮可以 present
另一个视图控制器,它本身有一个 UINavigationController
和另一个按钮等等。
我想在尽可能多的迭代中保持该模式并保存所有它们的状态。那可能吗?要关闭当前的视图控制器,我调用 _ = navigationController?.popViewController(animated: true)
但这也会删除前一个视图控制器中的所有数据。
你问了两个问题
1) 想要保持该模式进行尽可能多的迭代并保存所有它们的状态。
答案。 :你不能在已经呈现的视图控制器上连续呈现视图。为此,您首先需要关闭之前呈现的视图。
2) 要关闭我调用的当前视图控制器
_ = navigationController?.popViewController(animated: true)
但这也会从之前的视图控制器中删除所有数据。
答案。如果您呈现任何视图控制器,则不要使用 popviewcontroller,而应使用 dismisViewController。