自定义 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