Я слежу за 4-м выпуском iOS-программирования, The Big Nerd Guide.Я использую Xcode 10.0, в то время как книга использует Xcode 5.0, и я развертывал на iPad 6-го поколения под управлением iOS 11.0.Я нахожусь в главе 9, и я пытаюсь добавить пользовательский вид заголовка для UITableViewController
производного класса, ItemsViewController
.
Я создал пустой файл пользовательского интерфейса с именем HeaderView.xib
.В этом файле я создал UIView
с двумя кнопками от создателя интерфейса.Я установил тип класса «Владелец файла» на ItemsViewController
.Я изменил размер HeaderView
UIView
на Freeform и изменил размер представления до размера кнопок.Я установил цвет фона HeaderView
, чтобы очистить.Я также подключил представление «Владелец файла» к UIView
в конструкторе интерфейсов.
Внутри ItemsViewController я добавил свойство IBOutlet UIView*
для подключения HeaderView
к ItemsViewController
.Я написал - (UIView*)headerView
метод экземпляра для загрузки пакета представления заголовка.
- (UIView*)headerView
{
if (!_headerView)
{
[[NSBundle mainBundle] loadNibNamed:@"HeaderView" owner:self options:nil];
}
return _headerView;
}
И затем в viewDidLoad
я устанавливаю представление заголовка.
- (void)viewDidLoad
{
[super viewDidLoad];
[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"UITableViewCell"];
UIView* header = self.headerView;
[self.tableView setTableHeaderView:header];
}
Когда я развертываю и запускаюприложение, я получаю черный экран с двумя кнопками, которые я добавил.Если я удалил последние две строки viewDidLoad
, приложение прекрасно загрузится с некоторыми фиктивными данными, которые я сделал.
Почему бы HeaderView
перезаписал все параметры дисплея ItemsViewController
и отобразил черный экран?