Заголовок не показан в TableView

110
13

Должен ли я объявлять заголовок каким-то образом или должен сам self.navigationItem.title отображать заголовок в представлении таблицы сам по себе?

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

self.items = @[@{@"name" : @"Take out the trash", @"category" : @"Home"}, @{@"name" : @"Go Shopping", @"category" : @"Home"}].mutableCopy;

self.navigationItem.title = @"What needs to be done";

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addNewItem:)];
}

спросил(а) 2021-01-19T21:14:11+03:00 6 месяцев, 1 неделя назад
1
Решение
117

Это зависит от вас

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

self.title = @"your title";

Но если вы хотите, чтобы ваш собственный ярлык с изображением как titleView, вы можете создать пользовательский вид (UILabel, UIButton, UIImageView, UIView и т.д.) И установить ниже

self.navigationItem.titleView = yourCustomViewObject

если вам нужен заголовок в таблицеView, тогда вам нужно создать пользовательский вид в viewDidLoad и установить self.tableView.tableHeaderView = yourCustomViewObject или вы можете взять On xib, как ответил Хирен.


также если у вас есть раздел (ы), то вы также можете использовать один из делегатов tableView т.е.

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

вместе с

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section;

Это поможет вам.

ответил(а) 2021-01-19T21:14:11+03:00 6 месяцев, 1 неделя назад
46

UITableView имеет свойство tableHeaderView.

Вам просто нужно создать новый UIView, добавить в него UILabel и установить tableHeaderView с новым UIView.

-(void)viewDidLoad
{
//your viewDidLoad code
// ...

UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(XPOSITION, YPOSITION, WIDTH, HEIGHT)];
UILabel *labelView = [[UILabel alloc] initWithFrame:CGRectMake(XPOSITION, YPOSITION, WIDTH, HEIGHT)];
labelView.text = @"What needs to be done";
[headerView addSubview:labelView];
self.tableView.tableHeaderView = headerView;
}

ответил(а) 2021-01-19T21:14:11+03:00 6 месяцев, 1 неделя назад
46

Я сделал это:

Возьмите UIView для заголовка в раскадровке /xib. Затем в вашем файле.h,

IBOutlet UIView *headerView;

И затем в вашем файле.m,

yourTable.tableHeaderView = headerView;

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

ответил(а) 2021-01-19T21:14:11+03:00 6 месяцев, 1 неделя назад
46

Настройка navigationItem.title будет работать, только если ваш контроллер просмотра встроен в UINavigationController.

Вызовите этот метод перед представлением этого контроллера вида на экране, чтобы обернуть контроллер вида в контроллере навигации и представить результат vc:

[UINavigationController initWithRootViewController:myViewController]

ответил(а) 2021-01-19T21:14:11+03:00 6 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема