Кнопка и заголовок быстрой навигации не отображаются
Я хотел бы создать панель навигации поверх моего приложения. Я создал контроллер навигации -> Контроллер панели вкладок -> Контроллер навигации -> Контроллер таблиц
- Я перетащил пункт "Панель кнопок" в верхнем правом углу.
- Я дважды щелкнул по заголовку в середине Table Controller и написал текст.
Я также попробовал это с этим кодом в viewDidLoad() моего контроллера:
self.navigationController.navigationBar.topItem.title = "some title" self.navigationItem.setRightBarButtonItem(UIBarButtonItem(barButtonSystemItem: .Search, target: self, action: "barButtonItemClicked:"), animated: true) self.navigationItem.title = "YourTitle"
Не сработало - что я делаю не так?:/
4 ответа
Вы можете попробовать что-то вроде этого:
self.title = "Your Title"
var homeButton : UIBarButtonItem = UIBarButtonItem(title: "LeftButtonTitle", style: UIBarButtonItemStyle.Plain, target: self, action: "")
var logButton : UIBarButtonItem = UIBarButtonItem(title: "RigthButtonTitle", style: UIBarButtonItemStyle.Plain, target: self, action: "")
self.navigationItem.leftBarButtonItem = homeButton
self.navigationItem.rightBarButtonItem = logButton
Я считаю, что вы ищете titleView
,
Пытаться:
var navBarTitleView = UIView(frame: CGRectMake(0.0, 0.0, self.view.frame.width, 44.0))
navBarTitleView.backgroundColor = UIColor.brownColor()
self.navigationItem.titleView = navBarTitleView
Я вполне уверен, что вы можете просто установить заголовок вашего контроллера таблицы в его viewDidLoad, который является заголовком, отображаемым на панели навигации.
Этот ответ объясняет немного другой вопрос, но концепция та же:
/questions/17526271/izmenenie-zagolovka-navigatsii-programmno/17526290#17526290
Если вы хотите настроить "UINavigationBar" в соответствии с вашими пожеланиями. Пожалуйста, следуйте этому очень безопасно, это очень просто на быстром языке, надеюсь, это вам очень поможет.
ШАГ 1:-
Создайте класс категории в swift, просто перейдите в "Новый файл" и добавьте "Простой класс swift" и назовите его "MyCustomNavBarCategory.swift".
ШАГ 2:-
Просто "Очистите класс (удалите весь код из этого класса)" и "Вставьте мой код ниже": -
// класс будет начинаться снизу
let SCREEN_HEIGHT = UIScreen.mainScreen().bounds.size.height
импорт UIKit
extension UINavigationBar {
//First increase navigation bar height .
override public func sizeThatFits(size: CGSize) -> CGSize {
NSLog("%f", SCREEN_HEIGHT*0.06);
let newSize:CGSize = CGSizeMake(self.frame.size.width, SCREEN_HEIGHT*0.10)
return newSize;
}
//then set layOut of your Custom Nav for several objects like titleview,buttons and all
public override func layoutSubviews() {
for var view in self.subviews
{
NSLog("view %@", view);
let str :String = view.classForCoder.description();
if(str == "UILabel")
{
//play with title view frame
var f = view.frame;
f.origin.y = self.frame.size.height/2 - view.bounds.size.height/2 ;
view.frame = f;
view.backgroundColor = UIColor.greenColor();
}
else if(str == "UIButton")
{
//play with buttons of navigation bar view frame
var f = view.frame;
f.origin.y = (self.frame.size.height/2) - (view.bounds.size.height/2) ;
view.frame = f;
view.backgroundColor = UIColor.greenColor();
}
}
}
}
// класс закончится на вышеупомянутой остановке, скопируйте код на вышеуказанной строке и просто вставьте его в ваш "MyCustomNavBarCategory.swift". вот и наслаждайся;).
ШАГ 3:- Теперь вы можете установить любой фрейм для любого объекта UINavigationBar в этом классе: "Это очень мощная категория UINavigationBar, если вы будете реализовывать ее осторожно".