Подтвердить что ты не робот

Установите заголовок панели навигации, созданной в Interface Builder

У меня есть модальный контроллер представления, представление которого исходит от XIB. Я хочу, чтобы он выглядел так же, как и остальное мое приложение, основанное на навигации, но это не представление, которое было перенесено в стек навигационной системы, он был представлен модально. Я перетащил UINavigationBar и сделал его выходом, но у него нет свойства title для установки. У меня есть два поля, которые могут отображать это модальное представление, и я хочу, чтобы заголовок задавался по-разному в зависимости от того, какой из них создает модальный вид.

4b9b3361

Ответ 1

UINavigationBar управляет стеком UINavigationItem, как менеджер UINavigationController, стек UIViewController s. Чтобы установить то, что видно непосредственно, вы должны использовать либо pushNavigationItem:animated:, либо setItems:animated:, используя navigationItem контроллера вида, на который вы хотите отобразить панель.

например:

self.navigationItem.title = @"A custom title";
[self.navigationBar pushNavigationItem:self.navigationItem animated:NO];

Вышеприведенный код, в котором у вас есть свойство navigationBar, которое ссылается на автономную панель навигации.

Если вы не хотите самостоятельно управлять им, вы можете сделать так, как предположил mplappert, и вставить контроллер вида (без автономного UINavigationBar) в UINavigationController и представить навигационный контроллер вместо вашего представления контроллер.

Ответ 2

Также нашел этот более простой способ, если вы уже определили UINavigationBar в своей IB. Предполагая, что self.navigationBar является вашим IBOutlet:

self.navigationBar.topItem.title = title;

Ответ 3

(с использованием XCode 4.5.2) Найден метод, который работает непосредственно в Interface Builder - без настройки в коде.

В объекте ViewController, выбранном в (IB), под Инспектором удостоверений находится раздел с надписью " Пользовательские атрибуты времени выполнения". Я добавил keypath "title" типа String и установил его в значение, которое я хотел.

Протестировано, и это работает при вводе в стек Nav Controller и при открытии по умолчанию (с помощью Modal Nav Controller, конечно).

Ответ 4

файл viewcontroller.h в создании iboutlet элемента навигации

     @property (weak, nonatomic) IBOutlet UINavigationItem *navigationBarTitle;

- назвал его "navigationBarTitle"

в файле viewcontroller.m добавьте код в супер viewDidLoad

      self.navigationBarTitle.title = @"Favorites";

подключить рассказчик в пункте навигационной панели к navigationBarTitle.

Ответ 5

в моем .h файле

  • Перетащите ребенка из элемента навигации из раскадровки в файл .h

  • Именовал его "navigationBarTitle"

в моем .m файле

  • Добавлен self.navigationBarTitle.title= @ "Некоторое название";

Ответ 6

Вот самый простой способ:

[[[self.navigationController navigationBar] topItem] setTitle:@"The Title"];

Ответ 7

вы можете использовать существующую навигационную панель со следующим кодом

self.navigationController?.navigationBar.topItem?.title = "Calender"

Ответ 8

Просто разместите UIViewController в новом стеке диспетчера представлений UINavigationController и представите навигационный контроллер по-разному.