2012-08-27 64 views
0

didSelectRowAtIndexPath不起作用。
我配置了2個代表。一切都鏈接(tableview,tableviewcell)。
已刪除並重新執行。
我在這裏搜索了一切,沒有任何工作。
我認爲這是最好的link之一,仍然無濟於事。
didSelectRowAtIndexPath確實不起作用

我最後的希望是,我打開我的ViewController,哪裏有這個tableview,模態。但是這個問題是非常錯誤的。

除此之外,我需要一些幫助

索莫碼.H

@interface simulator : UIViewController <UITableViewDelegate, UITableViewDataSource, UIScrollViewDelegate> 
{ 
    NSArray           *array_products; 
} 
@property (nonatomic, strong) NSDictionary   *plist_products; 
@property (nonatomic, strong) IBOutlet UITableView *table_menu_left; 
@property (nonatomic, strong) NSString    *file_plist; 

@end 

一些代碼.M

#import "cel_products.h" 

- (void)viewDidLoad 
{ 
    NSString *path_root  = [[NSBundle mainBundle] bundlePath]; 
    NSString *full_path  = [path_root stringByAppendingPathComponent:self.file_plist]; 
    self.plist_products  = [[NSDictionary alloc] initWithContentsOfFile:full_path]; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"id_cell_products"; 
    UITableViewCell *cell   = [self.table_menu_left dequeueReusableCellWithIdentifier:CellIdentifier]; 

    array_products     = [self.plist_produtcs allKeys]; 
    if (cell == nil) 
    { 
     NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"cel_products" owner:self options:nil]; 

     for(id currentObject in topLevelObjects) 
     { 
      if([currentObject isKindOfClass:[cel_products class]]) 
      { 
       cell = (cel_products *)currentObject; 
       break; 
      } 
     } 
    } 
    cell.textLabel.text  = [array_products objectAtIndex:indexPath.row]; 
    return cell; 
} 

// numberofrowsinsection - OK 
// numberofsectionintableviw - OK 

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSLog(@"Hein?????"); 
    // Nothing.......... 
} 

回答

1

你設定在didSelectRowAtIndexPath休息一下?嘗試看看它是否在那裏成功破解。

擴大rokjark的答案你必須手動設置委託和數據源到有問題的文件。

你的頭文件simulator.h簡單地聲明爲SOME的UITableView甲代表/數據源。

你仍然需要指向table_menu_left使用simulator.h作爲THE委託文件來處理它的所有回調。

集:

self.table_menu_left.delegate = self; 
self.table_menu_left.datasource = self; 

而且又在didSelectRowAtIndexPath設置斷點,看看它是否被調用。

+0

我設置BRAK,並在此方法不會進入所有的代表。我有4個應用程序使用這個tableview代碼的相同方案,所有的作品都很完美,其中1個使用了兩個相同代碼的tableviews,完美的工作,只有這個項目的不同之處在於打開一個視圖作爲模式,只有那是不同的,漂亮的有線!!! –

+0

所以你通過模態segue打開視圖嗎? 你是否已經在'prepar中正確設置了委託(或委託,如果你有多個'UITableViews') eForSegue'在你從繼續看? – samuelsaumanchan

+0

我不使用歷史記錄...但我回答的解決方案;) –

4

我虛心向所有人道歉! 我無意中點擊屬性檢查>選擇:沒有選擇

所以我沒有在代碼中找到任何東西。

再次,我向大家道歉,但如果有人出現這個問題,這是一個需要驗證的步驟。 「更改爲屬性檢查器>選擇:單項選擇或多項選擇(由你)

感謝所有的答案和幫助

+0

請回答你自己的問題!像這樣,問題一直保持開放,並且沒有回答。 – Roger

相關問題