2013-12-05 5 views
0

Я новичок в мире разработки Iphone. У меня очень странная проблема с моим табличным представлением, я сделал много табличных представлений с разными данными, но это никогда не случалось.Ячейки UITableView не получили щелчок

Мои данные были показаны в таблицеView, но на него не нажимают. Я также удалил этот контроллер и создал еще один, но он тоже не работает. Хотя, когда я создаю другой проект и делаю tableView, он отлично работает. Любой, если вы можете помочь, заранее.

До сих пор я пытался утешить строку в моей

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{} 

, чтобы проверить, но это не утешать ничего.

вот мой код метода cellForRowAtIndexPath

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *simpleTableIdentifier = @"SimpleTableItem"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier]; 

    if (cell == nil) { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier]; 
    } 

    cell.textLabel.text = [tableData objectAtIndex:indexPath.row]; 
    cell.imageView.image = [UIImage imageNamed:[thumbnails objectAtIndex:indexPath.row]]; 
    return cell; 
}  

Я использовал контрольные точки и узнал, что она даже не входя в методе didSelect .. может быть делегат не вызывается. Но почему ? потому что я объявил его в (.h) файле @interface simpleDataViewController: UIViewController, а также в (.m) файле _table.delegate = self; _table.dataSource = self;

+0

Показать 'код метода cellForRowAtIndexPath'. –

+1

Вы установили свойство 'delegate' таблицы? – rmaddy

+0

да я. также связал его в моей раскадровке. – Arun

ответ

2

Убедитесь, что вы установили делегат этой Tableview, если не сделать ниже

[yourTableView setDelegate:self]; 
+0

Я уже это сделал. – Arun

+0

Вы активировали взаимодействие пользователя с таблицей? –

+0

yes У меня в моем методе didLoad – Arun

0

Я надеюсь, что, UITableView отключил для взаимодействия.

Добавить это в ViewDidLoad

self.tableView.userInteractionEnabled = YES; 
+0

в порядке. позвольте мне проверить – Arun

+0

@rmaddy: Извините, я смутился. Отредактировано по моей первоначальной мысли –

+0

@KumarKl: Это то, что мы устанавливаем явно. По умолчанию 'userInteractionEnabled' является TRUE для UITableView. –

0

есть некоторые основные вещи, и есть, чтобы смотреть, когда и используют UITableView,

использование протокола UITableViewDelegate и UITableViewDataSource.

после этого использования @property(nonatomic,retain) UITableView *Mytableview;

Может быть причина некоторых проблем во время @synthesize, таким образом, создать его уникальным путем написания

@synthesize Mytableview = _Mytableview;

после этого множества делегата и источника данных

[_Mytableview setdelegate:self];

[_Mytableview setDatasorce:self];

.. это проверить, работает ли он

+0

Я пробовал все, что вы сказали, но все же его фирма, как изображение, un-clickable – Arun

+0

@Arun: Если вы все сделали и все еще не работаете, то любезно предоставите код для создания таблицы. Если это делается через раскадровки, то предоставите экраны для инспектора атрибутов. –

0

Вы должны быть с cellSelectionStyle установить либо с помощью кода или с помощью атрибута инспектора.

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];

До тех пор, пока вы не определить стиль выбора ячейки Ячейка не будет показывать любой щелчок внешнего вида, однако щелчок происходит & didSelectRowAtIndexPath будет называться.Таким образом, по внешнему виду, если вы чувствуете, что клетка не щелкнул затем установите selectionStyle для ячейки, так как

[cell setSelectionStyle:UITableViewCellSelectionStyleDefaul];

+0

1. Я установил [cell setSelectionStyle: UITableViewCellSelectionStyleDefaul]; 2. Я использовал точки останова и узнал, что он даже не входит в метод didSelect .. может быть делегирован не называться – Arun

+0

Если вы уверены, что 'delegate' не задан, то почему бы вам не установить' delegates'. Я думаю, вы делаете это через 'IBOutlet'. Можете ли вы предоставить объявление собственности. Если не любезно включить это в свой 'simpleDataViewController.h' файл '@interface simpleDataViewController: UIViewController @ end' и в вашем' simpleDataViewController.m' файл, пожалуйста, сделать это после инициализации вы Tableview в 'метод viewDidLoad'. 'tableViewObject.delegate = self;' 'tableViewObject.datasource = self;' –

+0

Я уже сделал все это, но, несмотря на все это, он не сработал. с тем же исходным кодом я создал еще один проект и работал там. Это означает, что нет ничего плохого в моей процедуре или коде, но с моим проектом. так как я не мог обнаружить ошибку, поэтому я создал другой проект и там сбросил код. – Arun

Смежные вопросы