перо, но не получил UITableView с помощью PFQueryTableViewController

#ios #iphone #objective-c #xcode

#iOS #iPhone #цель-c #xcode

Вопрос:

Я пытаюсь добавить функцию поиска в свое приложение, но на экране должна быть панель навигации в дополнение к строке поиска в UITableView. Я получаю следующую ошибку, когда выполняю переход (нажимаю кнопку) и загружается представление

 Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UITableViewController loadView] loaded the "2Gx-ec-tTH-view-HBf-bD-79u" nib but didn't get a UITableView.'
 

Вот как это выглядит на моей раскадровке. Скриншот раскадровки

Я считаю, что проблема в том, что эта сцена управляется классом с именем «AllDataViewController», и он управляет UIView и является подклассом UITableView, на самом деле это PFQueryTableViewController

 //AllDataTableViewController.h
@interface AllDataTableViewController : PFQueryTableViewController <UISearchDisplayDelegate, UISearchBarDelegate, UITableViewDelegate>
 

Так что я не уверен, что я здесь делаю не так. Но дайте мне знать, если у вас есть какие-либо предложения или мне нужно добавить дополнительную информацию.

Ответ №1:

Поскольку ваш подкласс view controller UITableViewController (ну, косвенно через PFQueryTableViewController ), он ожидает, что его view свойство будет ссылаться на экземпляр a UITableView . Если вы посмотрите на иерархию объектов в сцене раскадровки, я думаю, вы обнаружите, что корнем сцены является не a UITableView , а a UIView .

Как вы добавили панель навигации? Правильный метод — выбрать «вставить в …» в меню редактора в построителе изображений.

Комментарии:

1. Я просто перетащил его из пользовательского интерфейса. Я буду «вставлять» и посмотреть, что произойдет.

2. @Paulw11 У меня такая же проблема. У меня есть UIView подобный root, можете ли вы предоставить решение? Удалить UIView — это правильный способ?