Добавьте файл xib в UITableView в качестве заголовка в UITableViewController - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть подкласс UITableViewController, и мой стол в порядке и готов.Моя проблема в том, что я хочу добавить пользовательский UIView в качестве заголовка таблицы.поэтому я создал пустой xib-файл «HeaderView.xib» и добавил в него свои представления (один UIView и 2 UIButton), добавил класс UITableViewController в качестве владельца файла и соединил две мои кнопки с классом:

- (IBAction)addNewItem:(id)sender
{

}

- (IBAction)toggleEdittingMode:(id)sender
{

}

в расширении класса я добавил свойство типа UIView:

@property (nonatomic, strong) IBOutlet UIView *headerView;

, затем переопределил метод получения:

- (UIView *)headerView
{
    if (_headerView) {
        [[NSBundle mainBundle] loadNibNamed:@"HeaderView"
                                      owner:self
                                    options:nil];
    }
    return _headerView;
}

и в viewDidLoad:

self.tableView.tableHeaderView = self.headerView;

Я не знаю, является ли это правильным подходом, поскольку я не вижу свой заголовок при запуске приложения

спасибо за вашу помощь

1 Ответ

0 голосов
/ 24 сентября 2018

То, как вы реализовали метод получения для headerView, всегда будет возвращать nil.Нечто подобное должно вести себя более адекватно:

- (UIView *)headerView {
    if (!_headerView) {
        _headerView = [[NSBundle mainBundle] loadNibNamed:@"HeaderView" owner:self options:nil].firstObject;
    }
    return _headerView;
}

Вам необходимо установить _headerView для первого объекта в массиве представлений, возвращенного из loadNibNamed.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...