我在UITableViews
中嵌入了两个UINavigationController
。在第一个表viewcontroller中选择一个单元格应该触发推送segue到第二个。这个segue没有被执行。
的 FirstTableVC 的
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// getting called as planned
if (indexPath.row == 0 && reload == YES) {
// working
[self pushedRefresh:self];
reload = NO;
return;
}
NSLog(@"past return"); // logged as planned
// NOT performing!
[self performSegueWithIdentifier:@"more" sender:[self.tableView cellForRowAtIndexPath:indexPath]];
}
我做了什么/注意到了
SecondTblVC's
viewDidLoad:
方法未被调用。但是,如果我使用非推送segue,则VC会正确显示。nil
的sender参数中使用self
和performSegueWithIdentifier:
,结果相同。UIViewController
。push
UINavigationController
设置,并将其替换为相同的结果。UINavigationController
delegates/data source
链接按计划运行。destinationViewController
(从登录performSegue
方法中学习)。如果有更多代码和屏幕截图有帮助,请与我们联系。
谢谢。
修改
这是我的cellForRowAtIndexPath
实施:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier = @"ReuseCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
cell.textLabel.text = [clubNames objectAtIndex:indexPath.row];
cell.detailTextLabel.text = [times objectAtIndex:indexPath.row];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:simpleTableIdentifier];
}
[cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];
return cell;
}
答案 0 :(得分:0)
尝试使用表视图控制器而不是表视图
UITableViewControllers
创建一个故事板ID,即:vc1和vc2
UITableViewController * vc2 = [self.storyboard instantiateViewControllerWithIdentifier:@ “VC2”]; [self.navigationController pushViewController:vc2 animated:YES];