如下图所示,我想在表视图中添加和编辑单元格。点击" +"或表格单元格打开另一个视图,用户可以在其中填写信息: 我被告知使用"退出"在视图的顶部(照片的右上角),您可以轻松处理所有填写的信息。遗憾的是,我无法在互联网上找到帮助,因为"退出"在英语中很常见。
额外:如果您可以建议我从点击单元格中捕获数据的最简单方法,填写文本字段进行编辑我也会很感激:)
答案 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;
}
这有意义吗?