2012-04-27 11 views
2

私は2つのセクションでグループ化されたテーブルビューを持っています。セクション番号1を非表示にし、セクションヘッダーをタップするとセクションが開きます。しかし、セクション1のセルをタップしてビューを開こうとすると、ダブルタップして開く必要があります。しかし、セクション0では1タップだけ必要です。 アップルチュートリアルのopen/closeセクションに基づいています。オープンビューのためにuitableviewcellをダブルタップする必要があります

didSelectRowAtIndexPathメソッドは、セルに最初のタップを登録しません。

方法は次のようになります。

-(void)tableview:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath{ 
    [tableView deselectRowAtIndexPath:indexPath animated:YES]; 
    if(indexPath.section == 0 && indexPath.row == 0) 
     [self.navigationController pushViewController:trainingController animated:YES]; 
    else if(indexPath.section == 1 && indexPath.row ==0) 
     [self.navigationController pushViewController:newsController animated:YES]; 
} 

これは擬似コードであるため、作業コードではないかもしれません。

答えて

0

両方のセクションを非表示にすると、両方のセクションでわずか1タップで動作します。ですから、uitableviewのセクションの一部を隠したいのであれば、すべてを隠すほうが良いでしょう。そうしないとセクションとのやりとりが変わります。

0

質問は不明です。 "didSelectRowAtIndexPathメソッドがセルで最初のタップを登録しない"が登録されていない場合 プロトコルを継承し、yourTableview.delegate = selfを設定します。

+0

メソッドがセクション0の最初のタップで反応し、セクション1の2番目のタップで反応するのが論理的だとすれば、それはそれ自身に設定されたデリゲートです。とにかく、クラスはUITableViewControllerから継承し、UIViewControllerでは継承しません。 – lagos

関連する問題