ios swift 如何在导航栏中设置一个保存按钮

ios swift how to set a save button in the navigation bar

我有一个 MainViewController,它是一个 table 视图控制器,带有自定义单元格,用户可以在其中 select 一些数据。这个 MainViewController 上有一个按钮可以转到 PreferencesViewController,它在导航栏上有两个按钮,一个用于返回(现在可以正常工作),另一个用于 save (这是我的问题)

这是PreferencesViewController中导航栏的截图:

我从 save 栏按钮拖回 MainViewController

我的问题

当我点击保存时,出现 MainViewController,但没有保存用户已经 select 的值。听起来像是正在创建此 MainViewContoller 的新实例。

我在这里错过了什么?我应该已经使用过哪些其他方法?

您需要将保存按钮连接到 IBAction,而不是 segue。

在那个 IBAction 中,做任何你需要做的事情来保存你的数据,然后做一个 dismissViewController:animated:在代码中调用你自己。

如果您想使用 segue,您将无法(轻松)保存您的数据,是的,它会创建一个新实例。

另一种方法是将您的保存按钮连接到展开转场、回滚或展开,一个或多个转场以返回到先前的视图控制器。为此,您必须将保存逻辑放在 prepareForSegue 中(使用代码来测试正在调用哪个 segue,并且仅在响应保存 segue 时保存。)

我自己找到了解决方案:

1- 自定义委托:

2- self.navigationController?.popViewControllerAnimated(true)