【问题标题】:iOS - Connect UITableViewCell to another ViewController ProgrammaticallyiOS - 以编程方式将 UITableViewCell 连接到另一个 ViewController
【发布时间】:2014-01-16 22:10:04
【问题描述】:

我以编程方式创建了一个 tableView,其中填充了一些行。但是,我想知道在点击其中一个单元格时如何导航到另一个视图控制器,同时将数据传递给另一个视图控制器?

这是我在每个单元格中填充的内容:

cell.textLabel.text = [NSString stringWithFormat:@"@%@", currentAccount.username];

如何将currentAccount.username 传递给我刚刚创建的另一个视图控制器?我没有使用故事板,因为我以编程方式创建了 UITableView。但是,我创建了另一个名为 FeedViewController 的视图控制器。

【问题讨论】:

  • 不要只在这些单元格上设置文本而忘记在哪个单元格上设置了文本。视图仅用于显示数据。因此,您实际上应该对数据进行建模。对于非常简单的示例,创建一个字符串数组,该数组的每个索引代表您要为每个单元格填充的内容。然后,当用户点击一个单元格时,您已经根据您的字符串数组知道他们点击了哪个(当用户点击一个单元格时触发的方法包括该单元格的indexPath,它应该映射到您的数组字符串)
  • @mattyohe 很有趣,但是假设我有那个 indexPath,如何将它发送到另一个视图控制器?
  • 您将在 didSelectCell 代码中创建下一个视图控制器,并将任何信息传递到该新视图控制器,然后再将其推送到导航控制器堆栈。
  • 搜索“在控制器之间传递数据”,SO 上有关于这个主题的数千个问题和答案。

标签: objective-c ios5 uitableview xcode5


【解决方案1】:

在您的表格视图委托方法中:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

您将实例化您的 FeedViewController,使用其属性将任何数据传递给它,然后显示它。

类似:

FeedViewController* feedVC = [[FeedViewController alloc] init];
feedVC.username = currentAccount.username
[self presentViewController:feedVC animated:YES completion:nil];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2016-06-07
    相关资源
    最近更新 更多