【问题标题】:iOS - UIStoryboardSegue detecting table cell and opening a viewController?iOS - UIStoryboardSegue 检测表格单元格并打开视图控制器?
【发布时间】:2012-03-11 09:04:11
【问题描述】:

所以我有一个 UITableView,并且单元格连接到一个 UIStoryboardSegue 以打开一个新的 UIViewController。单击单元格prepareForSegue 后,会调用,一切正常。

问题:在以下方法中,我如何知道 TableView 中所选单元格的 indexPath 是什么?

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    ObjectDetailViewController *mvc = [segue destinationViewController];
    // PassingObject *obj = [self.array objectAtIndex: ? ];
    mvc.passingObject = obj;
}

【问题讨论】:

    标签: ios uitableview storyboard uistoryboardsegue


    【解决方案1】:
    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
    {
        // Assume self.view is the table view
        NSIndexPath *path = [self.tableView indexPathForSelectedRow];
        DetailObject *detail = [self detailForIndexPath:path];
        [segue.destinationViewController setDetail:detail];
    }
    

    【讨论】:

    • 谢谢,我一直在从 nib 切换到使用故事板,这是一个挑战,因为没有好的文档。有没有很好的故事板博客或教程?
    • 这是一个与您的问题相关的好教程:Raywenderlich。您也可以查看他们的其他教程。
    • 以上可能是目前唯一不错的教程。我什至拥有几本几乎没有触及故事板表面的 IOS5 书籍。 UI 越简单,故事板越多似乎是有益的。越习惯,越难。
    【解决方案2】:

    您可以使用 [self.tableView indexPathForCell:sender] 而不是 [self.tableView indexPathForSelectedRow](查看 DJPlayer 答案),因为在这种情况下,sender 是一个选定的单元格。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-27
      • 1970-01-01
      • 1970-01-01
      • 2015-03-07
      相关资源
      最近更新 更多