1

tableview私は、画像といくつかの詳細を表示するアプリを持っています。テーブルビューに表示されている画像に誰かが触れると、アプリが同じ画像をより大きなサイズで開き、それらの間を移動できるようにしようとしています。

これは私の現在のコードです:

singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imgTapped:)];

singleTap.numberOfTapsRequired =1;
singleTap.numberOfTouchesRequired = 1;

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{

    return [json count];
}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyCell"];

    if(cell == nil){

        [[NSBundle mainBundle] loadNibNamed:@"AgendaCell" owner:self options:nil];
        cell = self.agendaCell;

    }

    agendaCell.dateCell.text = [[json objectAtIndex:[indexPath row]] objectForKey:@"date"];
    agendaCell.enderecoCell.text = [[json objectAtIndex:[indexPath row]] objectForKey:@"endereco"];
    agendaCell.tituloCell.text = [[json objectAtIndex:[indexPath row]] objectForKey:@"titulo"];
    [agendaCell.imgCell setImageWithURL:[NSURL URLWithString:@"http://sallescds.com.br/wp-content/uploads/2012/12/xepop-300x300.jpg"] placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
    [agendaCell.imgCell setUserInteractionEnabled:YES];
    [agendaCell.imgCell addGestureRecognizer:singleTap];


    return cell;
}

画像がタップされたときの関数は次のとおりです。

-(void)imgTapped:(UIGestureRecognizer *)gestureRecognizer{

    NSLog(@"detectado o click no UIImageView BITCH!");

    IMGDetailViewController *imgView = [[IMGDetailViewController alloc] initWithNibName:@"IMGDetailViewController" bundle:nil];


    [self.navigationController pushViewController:imgView animated:YES];
}

これを試してみると、アプリがクラッシュします。

4

1 に答える 1

0

をどのように設定しているかはわかりませんagendaCellが、通常は次の行です。

if (cell == nil) {
    [[NSBundle mainBundle] loadNibNamed:@"AgendaCell" owner:self options:nil];
    cell = self.agendaCell;
}

だろう:

if (cell == nil) {
    NSArray *nibObjects = [[NSBundle mainBundle] loadNibNamed:@"AgendaCell" owner:self options:nil];
    cell = [nibObjects objectAtIndex:0];
}

カスタム UITableViewCells を Xib ファイルからロードする方法を参照してください。

于 2013-05-21T21:45:31.157 に答える