自定义 UITableViewController 单元格 segue 不推送

Posted

技术标签:

【中文标题】自定义 UITableViewController 单元格 segue 不推送【英文标题】:custom UITableViewController cell segue not pushing 【发布时间】:2012-01-06 03:43:16 【问题描述】:

我有一个自定义 UITableViewController 显示一个带有位置列表的 TableView,我在情节提要 (ios 5) 中创建了一个 segue 并给它一个标识符“SelectPlace”,它来自第一个 UITableViewController 中的一个单元格,并且应该转到下一个 UITableViewController 显示一个新的 tableview,其中包含所选位置的详细信息列表。

问题是 segue 没有执行(下一个 TableViewController 没有被推入屏幕,当前一个保持打开)即使我仔细检查了正确的标识符并设置了所有内容。 我什至看到(断点) -prepareForSegue 发生并成功完成。

我也试过添加

[self performSegueWithIdentifier:@"SelectPlace" sender:[self.tableView cellForRowAtIndexPath:indexPath]];

到单元格选择

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

但这并没有帮助(而且我认为这没有必要,因为情节是在情节提要上绘制的)

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

    NSLog([segue.identifier description]);
    if ([segue.identifier isEqualToString:@"SelectPlace"])
    
        NSArray* placePhotosArr = [FlickrFetcher photosInPlace:[self.topPlacesArray objectAtIndex:([self.tableView indexPathForCell:sender].row)] maxResults:50];
        [segue.destinationViewController setPlacePhotosArray:placePhotosArr];

        //[segue perform];
        NSLog([placePhotosArr description]);        

    

缺少什么??? 请帮忙

【问题讨论】:

您上面的代码帮助解决了我的问题。感谢您发回您做错了什么! :) 【参考方案1】:

我不知道这是否会有所作为,但我使用了这个实现:

[[segue identifier] isEqualToString:@"YOUR_SEGUE_NAME_HERE"]

是推动还是您使用的是什么类型的过渡

【讨论】:

是的,它是推动。但它永远不会显示出来..我不明白为什么。顺便说一句,这两个符号之间没有区别,因为标识符是类 segue 中的一个属性。 segue.identifier 是 [segue identifier] 的属性符号,这两种符号在功能上没有区别【参考方案2】:

我的错,segue 没有推动的原因是因为我忘记在导航视图控制器中“嵌入”tableviewcontroller...duh

【讨论】:

以上是关于自定义 UITableViewController 单元格 segue 不推送的主要内容,如果未能解决你的问题,请参考以下文章

当我从 UITableViewController 打开自定义 UIView 时,如何关闭自定义视图并返回表格视图?

如何从 UiTableViewController 访问自定义 UITableViewCell 的属性?

实现自定义 UITableViewController 类并避免委托警告

容器视图中的自定义 UITableViewController

具有自定义数据源的 UITableViewController 不显示单元格

如何以编程方式设置 UITableViewController 自定义类?