Контроллер представления iPhone Subclassing и IBOutlet UITableView - PullRequest
2 голосов
/ 07 февраля 2011

У меня следующая проблема. Я создал ViewController почти так же, как указано выше

@interface MyViewController : UIViewController {
    IBOutlet UITableView *myTableView;
}

@property (nonatomic, retain) IBOutlet UITableView *myTableView;

Я связал myTableView в Интерфейсном Разработчике с UITableView соответствующего пера. и я подкласс MyViewController для создания YourViewController следующим образом:

@interface YourViewController : MyViewController {

}

А затем я загружаю из TabBarController элемент управления YourViewController для элемента вкладки. Хотя я вижу, что MyViewController действительно вызывается в конце, в эмуляторе не отображается табличное представление.

Я попытался отладить MyViewController, и кажется, что IBOutlet равен nil.

Почему это?

Ответы [ 5 ]

0 голосов
/ 06 апреля 2012

Предполагая, что у вас есть весь стек навигации в MainWindow.xib

  • Откройте MainWindow.xib
  • Выберите YourViewController (или как называется ваш контроллер, который подклассирует UITableViewController)
  • Выбор инспектора атрибутов
  • Убедитесь, что в свойстве 'Имя NIB' выбран правильный корректный YourViewController (или любое другое имя)

У меня была точно такая же проблема, эта проблема решенаэто для меня.

0 голосов
/ 07 февраля 2011

UITableView (т.е. ваш myTableView) нуждается в делегатах для источника данных и его управления. А вашему контроллеру нужна ссылка на табличное представление в xib.

  1. объявите протоколы делегатов таблиц в разделе интерфейса вашего контроллера.

  2. используя IB, свяжите TableView в xib с файлом владельцев: делегаты.

  3. с помощью IB свяжите владельца файла myTableView с tableView в xib.

Надеюсь, это поможет.

0 голосов
/ 07 февраля 2011

Вероятно, файл пера MyViewController вообще не загружается. Используете ли вы для YourViewController определенный файл пера? и каким образом вы создаете YourViewController.

Можете ли вы также попытаться определить метод "awakeFromNib" в YourViewController, а затем вызвать его [super awakeFromNib]?

Однако, чтобы понять вашу проблему, вы должны четко объяснить, как вы загружаете объекты, и если и где вы используете Nibs?

0 голосов
/ 07 февраля 2011

Если вы добавите его динамически, используя код, то будет работать только он. Не используется перо.

0 голосов
/ 07 февраля 2011

Я столкнулся с серьезными проблемами с наследованием и IBOutlets и IBAction.Я советую вам избегать этого и создавать общие материалы другим способом.

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

...