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)
我有一个 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)