1

У меня действительно странная проблема. У меня есть UITableView в контроллере вида, я могу настроить все, что я хочу, чтобы он работал. Но я хочу, чтобы, когда я нажимаю на строке появится Иной вид (это не сложно), так что я сделал это:tableView didSelectRowAtIndexPath не работает правильно

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSLog(@"didSelectRowAtIndexPath"); 
    self.myFicheView.hidden=NO; 

    [tableView deselectRowAtIndexPath:indexPath animated:YES]; 
} 

Но когда я нажимаю на строке методы не вызываются. Как будто это не работает, я пробовал много вещей, и я нашел что-то странное. Когда я нажимаю кратковременно на строке, ничего не происходит, но когда я нажимаю в течение 3 секунд, он работает, и когда я тоже падаю пальцем по строке.

Кто-нибудь знает, в чем проблема здесь?

@interface MapViewController : UIViewController<UITableViewDelegate,UITableViewDataSource> 
{ 

} 
@property (strong, nonatomic) IBOutlet UITableView *myTableView; 

здесь соединения инспектор моего Tableview http://hpics.li/256d01e

+1

Вы добавили self.myTableView.delegate = self; ? – Greg

+1

@iPatel, который ничего не изменит в этом случае, это нормально для свойства, чтобы сохранить его. сильный, слабый или сохраняющийся. – rckoenes

+0

Убедитесь, что tableView может ответить на выбор, установив [tableView setAllowsSelection: YES]; – Sabareesh

ответ

1

Я думаю, что вы не вызываете метод делегата

плз включить этот код в ваш метод viewDidLoad

myTableView.delegate=self; 
myTableView.dataSource=self; 
+0

Не работает. Как я уже сказал, это работает, но не по-разному. Я должен нажать 3 секунды для вызова метода didSelectRowAtIndex. – user3227545

+0

См. Вопрос правильно. Соединения уже сделаны в StoryBoard. –

+1

вы просто гарантируете, что didSelectRowAtIndexPath вы звоните .... прежде чем я совершил ошибку, я назвал метод didDeselectRowAtIndexPath..plz, чтобы гарантировать, что также –

2

Я точно не знаю, как выглядит ваш xib, если предположить, что представление приближается где-то перед вашим табличным представлением, попробуйте принесите свой табличный вид спереди к этому незакрытому виду.

Предполагая, что вы указали метод [tableView deselectRowAtIndexPath:indexPath animated:YES]; только для выделения, тогда есть свойство в xib, которое предоставляет вам эту возможность, с помощью этого вы можете удалить этот метод и попробовать запустить код. Пожалуйста, дайте снимок вашего xib или некоторых из вашего реализованного кода для лучшего уточнения.

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