【发布时间】:2014-06-10 14:54:02
【问题描述】:
从今天早上开始我就遇到了一个问题,如果找不到解决方案,我会发疯的。
这是我的问题:
我有一个视图控制器,其中包含一个 UItableView 和其他一些东西......这部分没有问题:我的 tableView 调用我的 webService,并重新加载填充的 tableView。但是,当我想触发对 UItableViewCell 选择的 segue 时,什么都没有发生。
我的 tableView 数据源和委托已设置:
我尝试了几种方法,但没有任何效果:
1) 直接链接单元格上的segue 2) 在 viewController 上声明 segue 并在调用“didSelectRowAtIndexPath”时用“performSegue”调用它 3)重启Xcode(是的,我很绝望)
但是,正如我之前所说,我的 tableView 的委托和数据源方法被正确调用,除了“didSelectRowAtIndexPath”
是否有人已经遇到过这个问题并找到了解决方案?
编辑:
这里是tableView数据源方法的实现
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return campagneList.count; //return 2 at execution
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self performSegueWithIdentifier:@"observatoireSegue" sender:self];
NSLog(@"test didSelectRowAtIndexPath");
}
【问题讨论】:
-
你能显示你的
didSelectRowAtIndexPath吗?一个常见的错误也是实现didDeselectRowAtIndexPath。 -
您对 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 和 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 的实现是什么?如果其中一个返回 0,则 cellforrow 将永远不会被调用。
-
你为什么要从
ViewController继承?你不应该从UIViewController继承吗?或者甚至更好,如果表格是屏幕上唯一来自UITableViewController的子类。 -
确保没有为情节提要中的表格视图关闭单元格选择。
-
如果 Fogmeister 建议的子类化不是问题,那么您可以尝试仔细查看您的 Storyboard 和 tableView 的 IBOutlet。断开 tableView、删除代码中的属性并通过创建新属性重新连接 IBOutlet 并再次设置委托/数据源可能值得一试。切换控制器时,可能会出现此区域的错误。
标签: ios objective-c didselectrowatindexpath uitableview