#iphone #objective-c #titlebar
#iPhone #objective-c #строка заголовка
Вопрос:
Я добавил новый файл в свой проект, в котором я создаю экраны программно, и я использовал следующий код для создания сгруппированного табличного представления со строкой заголовка и 2 кнопками в строке заголовка, но он создает только сгруппированную таблицу, но не строку заголовка y это так, может ли кто-нибудь помочь мне заранее поблагодарить
- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"Add Item";
self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemCancel
target:self action:@selector(cancel_Clicked:)] autorelease];
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemSave
target:self action:@selector(save_Clicked:)] autorelease];
self.view.backgroundColor = [UIColor scrollViewTexturedBackgroundColor];
tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, 320, 415)style:UITableViewStyleGrouped];
tableView.dataSource = self;
tableView.delegate = self;
[self.view addSubview:tableView];
}
Ответ №1:
UIBarButtonItem *addButton = [[[UIBarButtonItem alloc]
initWithTitle:@" "
style:UIBarButtonItemStyleBordered
target:self
action:@selector(Add)] autorelease];
self.navigationItem.rightBarButtonItem = addButton;
[journeylist.tabBarItem initWithTitle:@"Journey List" image:[UIImage imageNamed:@"listIcon-H.png"] tag:1];
journeylist.navigationItem.title =@"Journey List";
NSArray *controllers = [NSArray arrayWithObjects:journeylist,appstore,settings,about,nil];
self.viewControllers = controllers;
Попробуйте это.
Ответ №2:
Рамка вашей таблицы находится CGRectMake(0, 0, 320, 415)
так высоко слева, что вам нужно оставить место, скажем, для строки заголовка CGRectMake(0, 40, 320, 415)
.
Ответ №3:
Я думаю, вы должны представить это следующим образом.
SomeViewController *controller = [[SomeViewController alloc]
initWithNibName:@"SomeViewController" bundle:nil];
UINavigationController *navController = [[UINavigationController alloc]
initWithRootViewController:controller];
navController.navigationBar.tintColor = [UIColor grayColor];
[self.navigationController presentModalViewController:navController animated:YES];
[navController release];
[controller release];
Редактировать
Когда вы показываете этот контроллер в табличном виде, вам нужно сначала добавить его в навигационный контроллер, чтобы отобразить панель навигации.
Комментарии:
1. @robin Ваш ответ оказался не на тот вопрос? Вы и @Rani, похоже, отвечаете на одно и то же, но не на вопрос выше. Или я веду себя глупо?
2. @dave код @kiran верен. именно так вы создаете кнопки на панели навигации. Но он не видит панель навигации, потому что сначала он должен добавить контроллер в навигационный контроллер. У меня такая же проблема, но я выполнил работу, используя этот код.
3. @robin SomeViewController должен быть типа UIViewController? потому что я получаю сообщение об ошибке в этих строках controller.delegate = self; controller.isAddingNewEntry = YES; controller.isConvertingToTimeEntry = НЕТ; ОШИБКА: делегат не найден для объекта типа UIViewController
4. извините, киран, я вставил код, который я использовал для своего клиентского приложения, проверьте отредактированный код. я использовал эти переменные для отображения чего-либо в этом контроллере просмотра
5. @robin i я пробовал использовать ur code robin, но я не могу увидеть строку заголовка, нужно ли нам устанавливать какие-либо делегаты?