【问题标题】:Push segue from 2 sections in tablevew dosent work从 tableview 中的 2 个部分推送 segue 不起作用
【发布时间】:2012-06-07 19:24:12
【问题描述】:

我有一个配置为将 Segue 推送到另一个视图的 tableView。 该表分为 2 个部分。 当我推到下一个视图时,我也传输数据,但我遇到了这些部分的问题。

假设我的第 0 部分有 2 行,第 1 部分有 1 行。 如何检查第 1 节的行?

在故事板和 segue 准备之前我做过

row = indexPath.row;

if (section == 0)
{
    if (row == 0)
        data = @"Zero";

    if (row == 1)
        data = @"One";
}

if (section == 1)
{
    if (row == 0)
        data = @"Two";

    if (row == 1)
        data = @"Three";
}

现在它不工作了。当我单击第 1 节中的 0 行时,它会将“零”放入数据而不是“二” 这是为什么? 如何有效区分第 0 部分和第 1 部分?

【问题讨论】:

  • 如果 indexPath 为 nil,您将得到 section = 0 和 row = 0。代码需要更多上下文。那些如果没有错。
  • 也许现在问题更清楚了(我添加了我忘记添加的第一行代码)。在任何情况下,Row 都不是 nil。

标签: objective-c ios uitableview storyboard segue


【解决方案1】:

老兄,section = indexpath.section 在哪里? 这是一个 prepareForSegue 示例;

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    NSIndexPath *indexpath = [self.tableView indexPathForCell:sender];
//    indexpath.section
//    indexpath.row
}

【讨论】:

  • 我回家后会尝试,我想我已经尝试过了,但我愿意再试一次。
  • Tnx!我的问题是你说的“indexPathForCell:sender”,我写了“indexPathForRow:sender”。现在“if 部分”运行良好!
【解决方案2】:
  1. 您应该将数据显示在cellForRowAtIndexPath: 的单元格中。
  2. 您只需使用 Push Segue 将 IB 中的原型单元链接到下一个视图控制器。
  3. 然后您使用prepareForSegue 将它需要的数据传递给新的视图控制器。

正确的sectionrow 参数将在indexPath 变量中。

【讨论】:

  • Tnx Mundi,这正是我所做的。但是我想在按下不同的部分时传递不同的数据。我可以区分单元格的唯一方法是“行”,而不是部分。这就是为什么当我按第 0 行第 0 行时,我得到与按第 1 行第 0 行相同的结果,结果应该不同。
  • 没有。您可以查看indexPath.sectionindexPath.row
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-21
  • 1970-01-01
  • 2011-10-05
  • 1970-01-01
相关资源
最近更新 更多