0

UITableView押されたときに別のView Controllerをプッシュする必要がありますが、呼び出さdidSelectRowAtIndexPathれていません。私は別のView Controllerを使用PhotoCellしています.adセルは影響があります。前もって感謝します!これがテーブルのコードです。

#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];
4

3 に答える 3

0

正確な理由を言うのは難しいですが、試してみるべきことがあります。

  1. tableView を作成していますが、何らかの理由でデリゲート メソッドとデータソース メソッドを呼び出せません。まず、UITableView を作成している行の間にブレークポイントを置き、プログラムがそのコードを実行することを確認します。
  2. そのViewControllerにIBを使用していますか?xib ファイルに UITableView はありますか? プログラムで UITableView を作成しているため、一方の UITableView が他方の上にある場合があります。ほとんどの場合、IB を使用する方が簡単です。
  3. UIScrollView から tableView を削除します。ここでの正確なアーキテクチャはわかりませんが、2 つのスクロール ビューを重ねることは決して良い考えではなく、常に問題を引き起こします (スタック オーバーフローで UIScrollView の UITableView を検索するとわかります)。UITableView は UIScrollView そのものであることを思い出してください。
  4. セルからexclusiveTouchを削除します。これも問題の原因となっている可能性があります
  5. autorelease ステートメントを削除してみてください。ARC を使用していないため、dealloc メソッドで tableView を解放します。また、[self.tableView release] ではなく [_tableView release] を使用してください。
于 2013-11-11T21:33:21.007 に答える