Я пытаюсь добавить кнопку обновления в верхнюю панель контроллера навигации, но безуспешно.
Вот заголовок:
@interface PropertyViewController : UINavigationController {
}
Вот как я пытаюсь добавить это:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
UIBarButtonItem *anotherButton = [[UIBarButtonItem alloc] initWithTitle:@"Show" style:UIBarButtonItemStylePlain
target:self action:@selector(refreshPropertyList:)];
self.navigationItem.rightBarButtonItem = anotherButton;
}
return self;
}
iphone
ios
uinavigationcontroller
uinavigationbar
Artilheiro
источник
источник
self.topViewController.navigationItem.leftBarButtonItem = nextButton;
Попробуйте добавить кнопку в навигационный элемент контроллера представления, который будет помещен в
PropertyViewController
созданный вами класс.То есть:
Теперь эта информационная кнопка, созданная программно, будет отображаться на панели навигации. Идея состоит в том, что навигационный контроллер получает информацию об отображении (название, кнопки и т. Д.) Из того,
UIViewController
что он собирается отобразить. Вы на самом деле не добавляете кнопки и тому подобное прямо вUINavigationController
.источник
Кажется, что некоторые люди (как я) могут прийти сюда в поисках того, как добавить кнопку панели навигации в Интерфейсном Разработчике. Ответ ниже показывает, как это сделать.
Добавьте навигационный контроллер на вашу раскадровку
Выберите View Controller, а затем в меню Xcode выберите « Редактор»> «Встроить»> «Navigation Controller» .
В качестве альтернативы, вы можете добавить
UINavigationBar
из библиотеки объектов.Добавить элемент панели кнопок
Перетащите a
UIBarButtonItem
из библиотеки объектов на верхнюю панель навигации.Это должно выглядеть так:
Установить атрибуты
Вы можете дважды щелкнуть «Элемент», чтобы изменить текст на что-то вроде «Обновить», но есть фактический значок « Обновить», который вы можете использовать. Просто выберите Инспектор атрибутов,
UIBarButtonItem
а для пункта «Система» выберите « Обновить» .Это даст вам значок обновления по умолчанию.
Добавить действие IB
Перетащите управление из в
UIBarButtonItem
View Controller, чтобы добавить@IBAction
.Вот и все.
источник
По умолчанию есть системная кнопка «Обновить»:
источник
Вы можете использовать это:
Objective-C
стриж
источник
источник
Для быстрой 2:
источник
Вот решение в Swift (установите необходимые параметры):
источник
Почему вы подклассы
UINavigationController
? Нет необходимости создавать его подкласс, если все, что вам нужно сделать, это добавить к нему кнопку.Установите иерархию с
UINavigationController
верхним знаком, а затем вviewDidLoad:
методе вашего корневого контроллера : установите кнопку и присоедините ее к элементу навигации, вызвависточник
Можешь попробовать
источник
Свифт 4:
источник
источник
Попробуйте это. Это работает для меня.
Панель навигации, а также добавил фоновое изображение для правой кнопки.
источник
источник
источник
источник
Вы должны добавить свой barButtonItem в
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
метод.источник
Просто скопируйте и вставьте этот код Objective-C.
источник
Эта проблема может возникнуть, если мы удалим контроллер представления или попытаемся добавить новый контроллер представления внутри компоновщика интерфейса (main.storyboard). Чтобы решить эту проблему, требуется добавить «Элемент навигации» внутри нового контроллера представления. Иногда случается, что мы создаем новый экран контроллера представления, и он не подключается к «Элементу навигации» автоматически.
источник
Также вы можете добавить несколько кнопок, используя
rightBarButtonItems
источник
@Artilheiro: Если это проект на основе навигации, вы можете создать BaseViewController. Все остальные представления будут наследовать этот BaseView. В BaseView вы можете определить общие методы, чтобы добавить правую кнопку или изменить текст левой кнопки.
например:
И теперь в любом настраиваемом представлении реализуйте это базовое представление, вызывая методы:
В некоторых методах вызов базового метода как:
источник