Кнопка Swift Navigation Bar и название не отображаются
Я хотел бы создать панель навигации поверх своего приложения. Я создал контроллер навигации → Контроллер панели вкладок → Контроллер навигации → Контроллер таблиц
- Я перетащил элемент с баром в верхнюю правую сторону.
- Я дважды щелкнул заголовок в середине 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"
Не работает - что я делаю неправильно?:/
Ответы
Ответ 1
Вы можете попробовать что-то вроде этого:
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
Ответ 2
Я считаю, что вы ищете titleView
.
Try:
var navBarTitleView = UIView(frame: CGRectMake(0.0, 0.0, self.view.frame.width, 44.0))
navBarTitleView.backgroundColor = UIColor.brownColor()
self.navigationItem.titleView = navBarTitleView
Ответ 3
Я уверен, что вы можете просто указать заголовок своего контроллера таблицы, в его viewDidLoad, который является заголовком, отображаемым в вашей панели навигации.
этот ответ объясняет несколько иной вопрос, но концепция одинаков:
fooobar.com/questions/64191/...
Ответ 4
если вы хотите установить "UINavigationBar" в соответствии с вашим желанием. Пожалуйста, следуйте этому очень безопасно, так просто на быстром языке, надеюсь, что это вам очень поможет.
ШАГ 1: -
Создать класс категории в стрижа просто пойти на "Новый файл" и добавить "Простой быстры класс„ и дал ему имя “MyCustomNavBarCategory.swift"
ШАГ 2: -
Просто "Очистите класс (удалите весь код из этого класса)" и "Вставьте мой код ниже" : -
//класс начнется из строки ниже. Скопируйте сюда
пусть SCREEN_HEIGHT = UIScreen.mainScreen(). bounds.size.height
import UIKit
расширение 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, если вы будете выполнять ее осторожно" .