UINavigationBar с кнопкой «Назад». Создать с XIB - PullRequest
3 голосов
/ 08 марта 2012

У меня следующий вопрос: в конструкторе интерфейсов я создаю UINavigationBar и хочу создать элемент кнопки «Назад», но я не вижу никакой кнопки.

Я использую этот код:

    UIBarButtonItem *myBarButtonItem = [[UIBarButtonItem alloc] init];
    myBarButtonItem.title = @"Back";
    mynavBar.backItem.backBarButtonItem = myBarButtonItem;

mynavBar - это мой IBOutlet.

Спасибо за помощь!

Ответы [ 3 ]

5 голосов
/ 08 марта 2012

Вы можете использовать панель навигации в качестве автономного элемента управления или в сочетании с контроллером навигации.Когда вы используете панель навигации в качестве автономного элемента управления, вы используете элемент навигации (экземпляр класса UINavigationItem), чтобы указать, какие кнопки или пользовательские представления вы хотите отобразить.

Так что в вашем случае вы бы использовали что-то вроде этого:

UIBarButtonItem *myBarButtonItem = [[[UIBarButtonItem alloc] init] autorelease];
myBarButtonItem.title = @"Back";

UINavigationItem *right = [[[UINavigationItem alloc] initWithTitle:@"Hello!"] autorelease];
right.leftBarButtonItem = myBarButtonItem;

[mynavBar pushNavigationItem:right animated:YES];

Возможно, вы захотите изучить использование UINavigationViewController .

2 голосов
/ 08 марта 2012

Если вы хотите пользовательскую кнопку слева, используйте mynavBar.leftBarButtonItem вместо backItem. BackItem будет виден только после того, как вы представили другой контроллер вида через pushViewController:. (Если вы не установили свою собственную кнопку, кнопка по умолчанию с заголовком предыдущего viewController будет создана автоматически.)

// edit: возможно, вы ищете это: Создание пользовательской кнопки «Назад» на панели навигации iPhone

1 голос
/ 26 ноября 2012

Я думаю, что именно так Apple и хочет, чтобы это было реализовано.

Поместите UINavigationBar

Установите выход в UINavigationItem

Это подвох

Переопределите свойство navigationItem, чтобы вернуть созданный вами UINavigationItem.

Вот и все.

-(UINavigationItem *) navigationItem
{
    return self.navigationItem1;
}

Если ваш навигационный элемент все еще находится в UINavigationBar, я думаю, вам понадобится сильный выходUINavigation Bar тоже.Пожалуйста, поправьте меня, если я ошибаюсь.

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