Кнопка и заголовок быстрой навигации не отображаются

Я хотел бы создать панель навигации поверх моего приложения. Я создал контроллер навигации -> Контроллер панели вкладок -> Контроллер навигации -> Контроллер таблиц

  1. Я перетащил пункт "Панель кнопок" в верхнем правом углу.
  2. Я дважды щелкнул по заголовку в середине Table Controller и написал текст.
  3. Я также попробовал это с этим кодом в 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, если вы будете реализовывать ее осторожно".

Другие вопросы по тегам