Недопустимые вызовы делегатов UITableView и dataSource

У меня есть UIView, который содержит UITableView. Делегат tableview настроен на мой UIView, но он никогда не вызывает методы делегата:

-(id)init { self = [super init]; if (self) { self.tableView = [[UITableView alloc] initWithFrame:self.bounds]; self.tableView.autoresizingMask = UIViewAutoresizingFlexibleWidth; self.tableView.dataSource = self; self.tableView.delegate = self; self.tableView.scrollEnabled = NO; self.tableView.layer.cornerRadius = PanelCornerRadius; [self addSubview:self.tableView]; } return self; } #pragma mark - UITableViewDelegate methods - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { NSLog(@"height for row"); int height = [self heightForRowAtIndexPath:indexPath]; return height; } #pragma mark - UITableViewDataSource methods - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { NSLog(@"number of rows"); if (self.manager.fetchOperation.dataFetchProblem) { return 1; } int numberOfRows = [self.delegate numberOfSectionsInPanel:self]; return numberOfRows; } 

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

EDIT: Включено numberOfRowsInSection. Он потенциально может вернуть 0, только он никогда не получает такой шанс, потому что «количество строк» ​​NSLog никогда не будет вызвано.

Не могли бы вы написать код, который вы написали на вашем методе cellForRowAtIndexPath:? Потому что я не могу найти что-то не так с вашим кодом.

Вы звоните в UIView из другого ViewController? Если да, то как?

Однажды я сделал что-то подобное. Я объявил метод в UIView следующим образом:

 - (void)setUpTableView{ self.tableview.delegate=self; self.tableview.dataSource=self; } 

И затем я вызвал setUpTableView с контроллера представления, я добавил этот вид, например:

 [self.yourView setUpTableView]; 

Это может помочь. Благодарю.

У меня была аналогичная проблема, мое решение состояло в том, что я не установил количество секций в 1.

 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { // Return the number of sections. return 1; } 

Вы должны объявить свое представление следующим @interface MyView : UIView <UITableViewDelegate, UITableViewDataSource>

BTW: У меня был бы ViewController, который «контролирует» ваше представление и ваш табличный вид, а ViewController будет делегатом и источником данных в виде таблицы.

Вам не нужно использовать UIViewController, это всего лишь дымовая завеса. Вам также не нужно добавлять в .h, хотя вы все равно должны это делать, потому что Xcode будет жаловаться иначе, и вы не получите автоматическое завершение имени метода.

Я просто написал тестовый проект, в который встроен табличный вид в обычном UIView, и он отлично работает. Просто убедитесь, что ваш код инициализации вызывается. Готов поспорить, вам нужно переместить его в awakeFromNib.

Однажды я столкнулся с тем же вопросом, какую глупую ошибку я сделал внутри initWithCoder, которую я назвал [super init]. TableView был в xib

 -(id) initWithCoder:(NSCoder *)aDecoder { self = [super init] } 

Вместо

 -(id) initWithCoder:(NSCoder *)aDecoder { self = [super initWithCoder:aDecoder]; } 

Просто проверьте, не так ли это

Попробуйте изменить UIView на UIViewController и в viewDidLoad , вызовите

[[UITableView alloc] initWithFrame:style:] чтобы создать представление таблицы.

Задайте себя как делегат и источник данных, как вы делали выше, а затем добавьте этот UITableView в качестве Subview в этом контроллере.

попробуй это:

 override func numberOfSections(in tableView: UITableView) -> Int { return 1 } 

у меня тоже была эта глупая проблема

  • Как масштабировать изображение в изображении UITableViewRowAction, чтобы оно соответствовало динамической высоте ячейки
  • обнаружение uibutton, нажатого в виде таблицы: Swift Best Practices
  • Анимация UITableView изменяет размер
  • didSelectRowAtIndexPath не вызывается (Swift)
  • Добавить кнопку в UITableViewCell's Accessory View
  • жест нажатия на блоки просмотра вида tableView
  • Нет результатов - UITableView iPhone
  • Многострочный / динамический UILabel Truncating в iOS8
  • UISplitViewController не вращается правильно
  • Как получить ссылку на Table View Controller из пользовательской таблицы View Cell class
  • Видимые строки UITableCellView сверху
  • Interesting Posts

    «Запуск целевого устройства iOS недействителен» для iPod Touch, выполняющего 3.1.3 с XCode 4

    Основные данные. Зачем нужно перезагружать данные, чтобы мое приложение работало?

    Анимация Блоки сбрасываются в исходное положение после обновления текста

    iPhone 5 сетчатый дисплей 2x изображение

    не может сохранять NSUserDefaults в iOS 7.0.2

    Текстуры iOS с 33% дополнительной памятью

    упорядочивающий массив с другим массивом

    Поиск атрибута NSAttributedString ниже позиции крана представления

    Как обновить UITableView с помощью UISearchBar после нажатия кнопки отмены UISearchBar?

    Существуют ли более сложные альтернативы классу достижимости Яблок?

    Указывает ли Apple, какая версия SDK обязательна для использования в приложениях iOS?

    прослушивание микрофона на iOS, AVAudioRecorder или что-то еще?

    Ошибка компоновщика после обновления быстрой версии и контейнеров

    OpenCV: как создать файл .vec для использования с opencv_traincascade

    Ad Hoc для бета-тестирования xcode 4.3

    Давайте будем гением компьютера.