Контроллер навигации не добавляет кнопку назад - PullRequest
2 голосов
/ 19 февраля 2011

У меня есть вид, который выдвигает новый вид на экран.

Когда отображается новый вид, в навигационном контроллере нет кнопки возврата.

У меня есть следующее в одном виде

enter image description here

и я выдвигаю новый вид, используя следующий код

[photoViewController setAsset:[assets objectAtIndex:(cell.rowNumber * 4) + index]];
[[self navigationController] pushViewController:photoViewController animated:YES];
[photoViewController release];

Когда появляется вид, видимо следующее

enter image description here

Как добавить кнопку возвратаи где бы я добавил ту же кнопку поделиться на панели во втором представлении?

Спасибо.:)

Ответы [ 4 ]

10 голосов
/ 19 февраля 2011

Вам необходимо установить заголовок при первом просмотре.Кнопка «Назад» использует заголовок предыдущего представления.Если он не установлен, кнопка возврата не будет отображаться.

В методе viewDidLoad вашего первого просмотра используйте self.title = @ "title";

0 голосов
/ 19 февраля 2011

U не должен устанавливать backButton на VIewDidLoad, вместо этого вы должны кодировать его на DidSelect

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    UIBarButtonItem *btn=[[UIBarButtonItem alloc]init];
btn.title=@"Back";
self.navigationItem.backBarButtonItem=btn;
[btn release];

  }
0 голосов
/ 19 февраля 2011

Попробуйте использовать NSZombieEnable в вашей переменной enviornment в исполняемом файле вашего проекта, это поможет вам отладить. Обычно этот сбой происходит, потому что массив содержит элементы меньше указанного вами числа. Вам нужно работать с этим кодом я так думаю ....

[photoViewController setAsset:[assets objectAtIndex:(cell.rowNumber * 4) + index]];

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

0 голосов
/ 19 февраля 2011

Странно, что на навигационной панели не отображается кнопка «Назад» для контроллера, находящегося в толкании, потому что это стандартное стандартное поведение, позволяющее вам получить его бесплатно. Ваш photoViewController не переопределил -(UINavigationItem*)navigationItem;, верно?

Что касается добавления кнопки «Поделиться» ко второму контроллеру, вы можете просто установить ее через свойство navigItem контроллера, когда его представление загружается:

// In the .m file of whatever class photoViewController is...  
- (void)viewDidLoad {

    UIBarButtonItem* rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Share" style:UIBarButtonItemStylePlain target:self action:@selector(doSomething:)];
    [self.navigationItem setRightBarButtonItem:rightBarButtonItem];
    [rightBarButtonItem release];
}

Вы можете использовать тот же подход, чтобы установить пользовательскую кнопку возврата, просто получите себе другой UIBarButtonItem и установите его как leftBarButtonItem вашего UINavigationItem.

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