程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> ios-tableviewcell中的觸發事件,為什麼當我離開這一行才觸發呢?

ios-tableviewcell中的觸發事件,為什麼當我離開這一行才觸發呢?

編輯:編程綜合問答
tableviewcell中的觸發事件,為什麼當我離開這一行才觸發呢?

圖片說明下面是我的代碼

-(void) tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:YES];

//indexPath.row得到選中的行號。
NSLog(@"%ld",(long)indexPath.row);
switch (indexPath.row) {
    case 0:
    {   //初始化界面
        HLNoAudit *my = [[HLNoAudit alloc] init];
          my.title =[self.list objectAtIndex:0];
        //設置返回鍵
        UIButton *back = [UIButton buttonWithType:UIButtonTypeCustom];
        back.frame = CGRectMake(0, 0, 30, 30);
        [back setBackgroundImage:[UIImage imageNamed:@"arrow_left"] forState:UIControlStateNormal  ];
        [back setTitleColor:[UIColor redColor]forState:UIControlStateNormal];
        [back addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside];
        my.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:back];
        [self.navigationController pushViewController:my animated:YES];
    }
        break;
    case 1:
    {
        HLAlreadyAudit *my = [[HLAlreadyAudit alloc] init];
        my.title =[self.list objectAtIndex:1];
        //設置返回鍵
        UIButton *back = [UIButton buttonWithType:UIButtonTypeCustom];
        back.frame = CGRectMake(0, 0, 30, 30);
        [back setBackgroundImage:[UIImage imageNamed:@"arrow_left"] forState:UIControlStateNormal  ];
        [back setTitleColor:[UIColor redColor]forState:UIControlStateNormal];
        [back addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside];
        my.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:back];
        [self.navigationController pushViewController:my animated:YES];

最佳回答:


你選用的方法是錯誤的, 應該用didSelectRowAtIndexPath而不是 didDeselectRowAtIndexPath。使用didDeselectRowAtIndexPath方法第一次點擊選中cell是沒有反應的,當點擊其他的cell之後才取消之前選中的cell,然後才能調用didSelectRowAtIndexPath方法。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved