【问题标题】:ios swift how to set a save button in the navigation barios swift如何在导航栏中设置保存按钮
【发布时间】:2015-11-29 22:13:03
【问题描述】:

我有一个MainViewController,它是一个表格视图控制器,带有自定义单元格,用户可以在其中选择一些数据。这个MainViewController 上有一个按钮去PreferencesViewController,导航栏上有两个按钮,一个用于返回(现在很好用),另一个用于save(这是我的问题)

这是PreferencesViewController中导航栏的截图:

我将转场从save 栏按钮拖回MainViewController

我的问题

当我点击保存时,MainViewController 出现,但没有保存用户已经选择的值。听起来这个MainViewContoller 的新实例正在创建中。

我在这里缺少什么?请问我应该已经使用了哪些其他方法?

【问题讨论】:

    标签: ios swift uinavigationcontroller navigation uinavigationbar


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 你建议的另一种方式对我来说听起来很难。将我的保存栏项目连接到插座并执行此操作是否很好?
    • 将您的保存栏项目连接到IBAction 您的意思是?当然,这很容易也很好。
    • 为了将这些数据传回MainViewController,我该怎么做?
    • 请稍等,您的 dismissViewController 不起作用,它让我回到连接到导航控制器的 first 视图控制器,而我想回到MainViewController,为什么?我想我应该给你更多的背景信息。我有两个 navigatino 控制器,一个用于具有按钮的视图控制器,当单击时,我必须完全使用另一个导航控制器。请你找我还是我给你发个视频?
    • `self.dismissViewControllerAnimated(false, completion: nil)`这是我使用的函数
    【解决方案2】:

    我自己找到了解决方案:

    1- 自定义委托:

    2- self.navigationController?.popViewControllerAnimated(true)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多