не удается получить элементы строки заголовка и кнопки навигации

#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, но я не могу увидеть строку заголовка, нужно ли нам устанавливать какие-либо делегаты?