ios - UITableView 中未调用 didSelectRowAtIndexPath

标签 ios uitableview

我有一个 UITableView,当按下它时,它应该推送另一个 View Controller ,但是 didSelectRowAtIndexPath 没有被调用。我正在使用另一个 View Controller PhotoCell,广告单元格有任何影响。提前致谢!这是表格的代码。

#pragma mark - Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    //    NSInteger sections = self.objects.count;
    //    if (self.paginationEnabled && sections != 0)
    //        sections++;
    //    return sections;
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 1;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
//    if (indexPath.section >= self.objects.count) {
//        // Load More Section
//        return 320.0f;
//    }
//    
    return 320.0f;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"PhotoCell";
    PhotoCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell==nil) {
        cell = [[PhotoCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];

    }

    [cell setThumbImage:self.thumbImage];
    cell.imageView.image = self.thumbImage;
    [cell setExclusiveTouch:YES];
    return cell;
}

//this is what i need to look at

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    DetailViewController *detailsViewController = [[DetailViewController alloc] init];
    [self.navigationController pushViewController:detailsViewController animated:YES];

    NSLog(@"Pushing row at index path");
}

这里是我定义表格的地方

[self.tableView registerClass: [PhotoCell class] forCellReuseIdentifier:@"PhotoCell"];
self.tableView = [[[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 568) style:UITableViewStylePlain] autorelease];
[self.tableView setDelegate: self];
[self.tableView setDataSource:self];
[self.scrollView addSubview:self.tableView];
self.tableView.separatorColor = [UIColor clearColor];

最佳答案

假设您在 Interface Builder 中设置了推送转场,我将继续进行盲目猜测。

在这种情况下 tableView:didSelectRowAtIndexPath: 不会在触发 segue 时被调用。如果你需要在 segue 执行之前做额外的设置,你可以实现 prepareForSegue:sender:.

关于ios - UITableView 中未调用 didSelectRowAtIndexPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19913334/

相关文章:

ios - 检测到的 ARKit 图像重新出现

ios - 表中单元格的自定义组件

objective-c - 从数组和数据库中删除行

ios - 运行时错误 : __NSAutoreleaseNoPool(): . ..autoreleased 没有适当的池 - 只是泄漏

ios - 为什么在UIView上画线需要背景色?

objective-c - 使用委托(delegate)团驳回 View 不起作用

ios - iOS 中包标识符的正确格式是什么?

swift - (Swift) 如何更改单元格外的标签文本(事件发生的地方)?

iOS - 单元格分隔符不会出现在 UITableView 上

ios - 如何更优雅地添加/删除表格 View 中的单元格?