0

現時点では、UITableView2 行の and があります。写真のように。の配列によって設定されViewDidLoadます。

ここに画像の説明を入力

ViewDidLoad

- (void)viewDidLoad {

 [super viewDidLoad];
self.title = NSLocalizedString(@"Analysis", @"Badminton Analysis Tool");
NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:@"Statistical Analysis", @"Graphical Analysis", nil];
self.booksArray = array;
}

didSelectRowAtIndexPath

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {    
NSInteger row = [indexPath row];

if (self.statViewController == nil) {
    StatViewController *statDetail = [[StatViewController alloc] initWithNibName:@"StatViewController" bundle:nil];
    self.statViewController = statDetail;
}
statViewController.title = [NSString stringWithFormat:@"%@", [booksArray objectAtIndex:row]];

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

現時点では、どちらかの行をクリックすると、「統計分析」のみを目的とした同じビューにプッシュされます。グラフィカル分析のクリックを無効にしたいと考えています。「グラフィカル分析」の選択を無効にするにはどうすればよいですか?

ありがとう。

4

6 に答える 6

2

nilテーブル ビュー デリゲートの-tableView:willSelectRowAtIndexPathメソッドから戻ります。

- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.row == 1)
        return nil;
    else
        return indexPath;
}
于 2012-04-30T14:19:42.137 に答える
1

青いフラッシュを無効にするには、次のようにします。

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

  if (cell == nil)     {
     //usually this is the place where we decide the selection style blue/none  

}
if(indexPath.row == 1) {
cell.setUserInteractionEnabled = NO;// この方法では、didSelectrow デリゲート メソッドは呼び出されません。
他の {
cell.setUserInteractionEnabled = YES; セルを返します
。 お役に立て ば幸いです。


于 2012-04-30T16:23:10.883 に答える
1
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {  
      if(indexPath.row == 1) {
         [tableView deselectRowAtIndexPath:indexPath animated:YES];
         return;
       }
}
于 2012-04-30T15:42:34.037 に答える
1

tableView:willSelectRowAtIndexPath: (ドキュメントを参照) を実装し、パスが無効にしたいものと一致する場合は nil を返します。

于 2012-04-30T14:19:30.880 に答える
0

プラグママーク -

プラグマ マーク テーブル ビュー デリゲート

  • (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    if (indexPath.row == 0) {

    iHadAppDelegate *delegate =  [[UIApplication sharedApplication] delegate];
    delegate.flag = 0;
    delegate.mytag = 0;
    
    TableSelectMealViewController *detail = 
    [[TableSelectMealViewController alloc] initWithStyle:UITableViewStyleGrouped];
    detail.rows = 6;   
    [self.navigationController pushViewController:detail animated:YES];
    SelectMealViewController.contentSizeForViewInPopover = CGSizeMake(285, 400);
    
    [detail release];
    [self.tableView deselectRowAtIndexPath:indexPath animated:YES];
    

    }

    if (indexPath.row == 1) { iHadAppDelegate *delegate = [[UIApplication sharedApplication] delegate]; デリゲート.フラグ = 1;

    DatePickerViewController *controller = [[DatePickerViewController alloc]init];
    [self.navigationController pushViewController:controller animated:YES];
    controller.contentSizeForViewInPopover = CGSizeMake(285, 400);
    
    [controller release];
    

    }

    if (indexPath.row == 2) { iHadAppDelegate *delegate = [[UIApplication sharedApplication] デリゲート]; デリゲート.フラグ = 2;

    }

    if (indexPath.row == 3) { iHadAppDelegate *delegate = [[UIApplication sharedApplication] delegate]; デリゲート.フラグ = 3;

    TableSelectMealViewController *detail = 
    [[TableSelectMealViewController alloc] initWithStyle:UITableViewStyleGrouped];
    //detail.rows = 10;
    [self.navigationController pushViewController:detail animated:YES];
    
    SelectMealViewController.contentSizeForViewInPopover = CGSizeMake(285, 400);
    
    [detail release];
    [self.tableView deselectRowAtIndexPath:indexPath animated:YES];
    

    }

}

@k.Honda は、私のコードから観察を行います。

    [self.tableView deselectRowAtIndexPath:indexPath animated:YES];

使用-行の選択を解除したい[各行ではなく、選択を解除したい行のみ]。

于 2012-05-01T05:14:03.393 に答える