在视图之间传递数据

时间:2015-04-08 14:46:05

标签: ios xcode

如下图所示,我想在表视图中添加和编辑单元格。点击" +"或表格单元格打开另一个视图,用户可以在其中填写信息: 我被告知使用"退出"在视图的顶部(照片的右上角),您可以轻松处理所有填写的信息。遗憾的是,我无法在互联网上找到帮助,因为"退出"在英语中很常见。

额外:如果您可以建议我从点击单元格中捕获数据的最简单方法,填写文本字段进行编辑我也会很感激:)

enter image description here

2 个答案:

答案 0 :(得分:2)

为了首先使用Unwind Segues,您必须在ViewController中创建一个可以返回的展开动作,这是:

目标C:

- (IBAction)unwindToMainMenu:(UIStoryboardSegue*)sender
{
    UIViewController *sourceViewController = sender.sourceViewController;
    // Pull any data from the view controller which initiated the unwind segue.
}

夫特:

@IBAction func unwindToMainMenu(sender: UIStoryboardSegue)
{
    let sourceViewController = sender.sourceViewController
    // Pull any data from the view controller which initiated the unwind segue.
}

此方法的名称可以是您想要的任何名称。这些来自Apple文档。

您可以从ViewController中的按钮触发该操作。为此,您必须按住Ctrl键从按钮拖动到"退出"按钮(在同一个ViewController中),它将显示所有展开动作。

您可以通过两种方式传递数据:

  • 使用prepareForSegue:按下按钮时,它将在ViewController中执行prepareForSegue,您可以将所需信息传递给"之前的"的viewController。

  • 从viewController中提取信息:如上面的展开操作,您可以访问viewController的信息,您需要使用参数{{1}的属性sourceViewController访问视图控制器}。

我希望这会有所帮助。

您可以在Apple Documentation中找到更多信息。 此外,它还在WWDC 2012视频在您的应用中采用故事板(最后10分钟讨论放松赛段)中进行了解释

答案 1 :(得分:0)

要通过所选单元格将数据从一个viewController传递到另一个viewController,您必须执行以下步骤:  1.在第一个viewController中获取所选Cell的内容。  2.使用可编辑属性创建第二个viewController的实例(在您的情况下,让我们说名称标签)。  3.将该属性设置为第一步中的内容。 (下面是您将在第一个viewController中关注的主要方法的示例)

- (void)tableView:(UITableView *)tblView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
  {
  UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
  NSString *str = cell.textLabel.text;
  SecondViewController *secondVC = [[SecondViewController alloc]init];
  secondVC.nameLabel.text = str;
  }

这有意义吗?