自定义UITableViewController单元格不推送

时间:2012-01-06 03:43:16

标签: objective-c ios xcode uitableview segue

我有一个自定义UITableViewController显示一个带有位置列表的TableView,我在故事板(ios 5)中创建了一个segue并给它一个Identifier“SelectPlace”,它来自第一个UITableViewController中的一个单元格,并且被认为是to segue到下一个UITableViewController,显示一个新的tableview,其中包含所选位置的详细信息列表。

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

我也尝试添加

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

到单元格选择

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

但它没有帮助(我认为这不是必要的,因为故事板上绘制了segue)

-(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]);        

    }
}

缺少什么? 请帮忙

2 个答案:

答案 0 :(得分:0)

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

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

是推送还是使用什么类型的转换

答案 1 :(得分:0)

我的不好,segue没有推动的原因是因为我忘了将tableviewcontroller'嵌入'导航视图控制器... duh