Использование пользовательского класса UITableViewController в раскадровке

В своей раскадровке я создал новый объект UITableViewController, для которого я хотел бы указать некоторый пользовательский код. Я создал новый контроллер со следующим заголовком:

@interface CustomController : UITableViewController

Когда я выбираю UITableViewController в представлении Storyboard и перехожу к Identity Inspector, я вижу свой CustomController в раскрывающемся списке Custom Class. Однако, когда я выбираю его, я слышу звук ошибки, который в системных настройках называется «Морзе».

Когда я отменяю выбор UITableViewController и повторно выбираю его, он очищает мой выбор CustomController и заменяет его на UITableViewController. Я не понимаю, почему XCode не принимает это, насколько я понимаю, это все, что требуется для добавления собственного кода в UITableViewController. Я не уверен, столкнулся ли я с ошибкой XCode или неправильно настроил свой класс.


person Steve Rukuts    schedule 22.12.2011    source источник
comment
Пробовали ли вы удалить CustomController или добавить еще один CustomController2 и начать заново с недавно унаследованным подклассом UIViewController?   -  person sean woodward    schedule 23.12.2011
comment
Хороший звонок. Оказывается, если вы преобразуете UIViewController в UITableViewController, этого все равно недостаточно, чтобы использовать его в качестве UITableViewController в раскадровке. Итак, обнаружена еще одна ошибка в XCode. Если вы захотите написать это как ответ на этот вопрос, я отмечу его как принятый.   -  person Steve Rukuts    schedule 23.12.2011


Ответы (1)


Можно использовать UIViewController в качестве UITableViewController, но вам придется проделать определенную работу. Если вы «преобразуете» UIViewController в UITableViewController, вам потребуется реализовать протоколы UITableViewDelegate и UITableViewDatasource. Вам также может понадобиться предоставить выход для UITableView. Вам также потребуется обрабатывать события клавиатуры. По сути, куча усилий для малой отдачи. Возможно, в вашем случае лучше всего начать заново с нового класса UIViewController, унаследованного от UITableViewController.

person sean woodward    schedule 23.12.2011