didSelectRowAtIndexPath действительно не работает

DidSelectRowAtIndexPath не работает.
Я настроил 2 делегата. Все связано (tableview, tableviewcell).
Уже удалил и сделал это снова.
Я искал все здесь, и ничего не помогло.
Я думаю, что это был один из лучших link, но безрезультатно.

Моя последняя надежда на то, что это так, я открываю свой ViewController, где есть это табличное представление, для модального окна. Но это было бы ОЧЕНЬ неправильной проблемой.

Кроме этого, мне нужна помощь

Сомо коды .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..........
}

person Daniel Arantes Loverde    schedule 27.08.2012    source источник


Ответы (2)


Приношу тысячи извинений всем! Я случайно нажал «Инспектор атрибутов»> «Выбор: НЕТ ВЫБОРА».

Так что в коде ничего не нахожу.

Опять же, я прошу прощения перед всеми, но если у кого-то возникла эта проблема, это еще один шаг, который необходимо проверить. "Перейдите в Инспектор атрибутов> Выбор: ОДИН ВЫБОР или МНОЖЕСТВЕННЫЙ ВЫБОР (на ваше усмотрение)

Всем спасибо за ответы и помощь

person Daniel Arantes Loverde    schedule 28.08.2012
comment
ответьте, пожалуйста, на свой вопрос! Как будто эти вопросы остаются открытыми и появляются без ответа. - person Roger; 14.12.2012

Вы установили перерыв на didSelectRowAtIndexPath? Попробуйте и посмотрите, успешно ли он там сломается.

Расширяя ответ rokjark, вы должны вручную установить делегата и источник данных для рассматриваемого файла.

Ваш заголовочный файл simulator.h просто объявляет его как A делегата / источника данных для НЕКОТОРЫХ UITableView.

Вам все равно нужно указать table_menu_left, чтобы использовать simulator.h как THE файл делегата для обработки всех его обратных вызовов.

Набор:

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

И снова установите перерыв в didSelectRowAtIndexPath и посмотрите, будет ли он вызван.

person samuelsaumanchan    schedule 27.08.2012
comment
Я поставил тормоз, и не ввязываюсь в этот метод. Все делегаты и все участники IB установлены. У меня есть 4 приложения, использующие ту же схему этого кода tableview, все работает отлично, 1 из них использует 2 tableview в одном коде, отлично работает. Единственное отличие этого проекта в том, что представление открывается как модальное. Только это другое. Довольно проводной !!! - person Daniel Arantes Loverde; 28.08.2012
comment
Итак, вы открываете представление через модальный переход? Правильно ли вы установили делегата (или делегатов, если у вас несколько UITableViews) в prepareForSegue в представлении, от которого вы переходите? - person samuelsaumanchan; 29.08.2012
comment
я не использую доску истории ... но я отвечаю с решением;) - person Daniel Arantes Loverde; 29.08.2012