我有简单的故事板项目,带有UITableViewController和详细VC。 Table View Controller有一个自定义类,它是表的委托和数据源。
我使用以下代码创建单元格:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellId = @"cellId";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellId];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
reuseIdentifier:cellId];
}
// Configure the cell...
return cell;
}
故事板中tableview的定义如下:
它显示正确,但是,当我点击一个单元格时,没有任何反应,并准备发送:发送者:永远不会被调用。
在故事板中,tableview单元格连接到详细信息VC:
我已经检查了类似的问题,但似乎没有任何内容适用于我的情况。 tableview的自定义类已设置,所有委托和数据源连接似乎都可以。
我对故事板很新,所以我担心错误必须在它的配置中。如果我实现didSelectRow ...我可以让系统按预期工作,但我想用segues来做。
答案 0 :(得分:0)
将“{ctrl”从您的UITableViewCell
拖放到所需的视图控制器。作为segue类型使用push并给segue一个标识符。然后你可以调用performSegue:segue
并检查你的segue是否被
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"your identifier"]) {
YourViewController *yourVC = (YourViewController*)segue.destinationViewController;
// prepare your vc
}
}
您也可以删除支票cell==nil
,因为自iOS 6以来不再需要支票。
答案 1 :(得分:0)
只有当你在故事板中有一个连接或者你明确地调用了执行segue来调用执行segue时,才会调用segue的准备。
用于调用执行segue - Ctr +从你的uitableviewController拖动到detailviewController。为segue分配标识符。
在你的自定义课程中 - 方法tableView:didSelectRowAtIndexPath: - 调用方法performSegueWithIdentifier:并传递标识符。 还记得取消选择单元格。
此时,将调用塞格的准备。