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

问题描述 投票:1回答:1

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

newViewController有自己的UINavigationController,还包含一个按钮。该按钮可以present另一个本身具有UINavigationController和另一个按钮的视图控制器,依此类推。

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

ios swift uiviewcontroller uinavigationcontroller uipageviewcontroller
1个回答
2
投票

您问了两个问题

1)希望使该模式进行尽可能多的迭代,并保存所有迭代的状态。

答案:您不能在已经显示的视图控制器上连续显示视图。首先,您需要关闭先前显示的视图。

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

 _ = navigationController?.popViewController(animated: true) 

但是也删除了先前视图控制器中的所有数据。

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

© www.soinside.com 2019 - 2024. All rights reserved.