2013-10-10 1 views
0

Я пытаюсь добавить (или иметь) панель навигации (или элементов) в верхней части контроллера View и табличное представление прямо под панелью навигации. Проблема, с которой я столкнулась, заключается в том, что когда я устанавливаю источник данных tableview для View Controller, мое приложение будет аварийно завершено (установка делегата tableview на контроллер View не выполняется). На данный момент код для представления таблицы находится в представлении ViewController.m по умолчанию. У меня есть код таблицы в нужном месте или я подключил что-то неправильно?Добавление навигации в контроллер просмотра с помощью TableView

Вот ошибка, что она дает мне:

2013-10-10 15: 14: 48,442 SomeApp [15058: A0B] - [UIViewController> Tableview: numberOfRowsInSection]: непризнанные селектор направлен например 0x8d42450 2013-10-10 15: 14: 48.450 SomeApp [15058: a0b] *** Завершение приложения из-за неперехваченного исключения> «NSInvalidArgumentException», причина: '- [UIViewController> tableView: numberOfRowsInSection:]: непризнанный селектор, отправленный в экземпляр 0x8d42450 '

Current setup

ответ

1

Убедитесь, что контроллер представления придерживается соответствующих протоколов:

CustomViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> 

И добавьте необходимые методы из этих протоколов в вашу реализацию. Это ссылки на документацию для Вашего удобства:

UITableViewDelegate Protocol Reference

UITableViewDataSource Protocol Reference

+0

Я добавил это в ViewController.h как '@interface ViewController: UIViewController ', но он все еще разбился. Интересно, поставил ли я код, который реализует табличное представление, в неправильном месте или мне нужно создать еще один класс контроллера представлений для ViewController, который содержит tableview. – iwatakeshi

+0

Внедрили ли вы каждый из необходимых методов протокола? Если это так, попробуйте полностью удалить файл. Затем создайте новый файл, но когда приглашение запросит суперкласс, дайте ему UITableViewController, а не UIViewController. –

+0

Я заработал. Я создал новый класс, как вы упомянули. Мне также пришлось изменить свойство Tableview для использования пользовательского класса. Благодарю. – iwatakeshi

0

Вы отсутствуют некоторые методы, которые необходимы для вашего TableView работать,

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

Более подробная информация о UITableViewDataSource Protocol Reference

+0

Да, я сделал реализовать оба внутри ViewController.m (если я не нужен, чтобы добавить определения в файле .h). Интересно, нужно ли мне создать новый класс для ViewController? – iwatakeshi