首页 文章

以编程方式更改导航 Headers

提问于
浏览
132

我有一个带 Headers 的导航栏 . 当我双击文本来重命名它时,它实际上说它是一个导航项,所以可能就是这样 .

我正在尝试使用代码更改文本,例如:

declare navigation bar as navagationbar here
button stuff {
    navigationbar.text = "title"
}

那显然不是我的代码,只是展示它是如何工作的 .

所以,每当我按下按钮,我想要改变 Headers .

9 回答

  • 8

    您可以通过更改正在显示的视图控制器的title来更改 Headers :

    viewController.title = "some title"
    

    通常这是在视图中完成视图控制器上的加载:

    override func viewDidLoad() {
        super.viewDidLoad()
        self.title = "some title"
    }
    

    但是,这仅在您将视图控制器嵌入UINavigationController中时才有效 . 我建议这样做而不是自己创建导航栏 . 如果您坚持自己创建导航栏,可以通过执行以下操作来更改 Headers :

    navigationBar.topItem.title = "some title"
    
  • 3

    通常,最佳做法是在 UIViewController 上设置 Headers . 通过这样做, UINavigationItem 也被设置 . 通常,这比以编程方式分配和初始化未链接到任何内容的_146362更好 .

    您错过了 UINavigationBar 设计的一些优点和功能 . Here is a link到可能对您有帮助的文档 . 它讨论了您可以在实际条形图和 UINavigationItem 上设置的不同属性 .

    请记住:

    • 您丢失了后退按钮功能(除非您自己连线)

    • 内置的"drag from the left-hand side to swipe back"手势被没收

    UINavigationController 是你的朋友 .

  • 3

    使用swift4的人的正确答案是

    override func viewDidLoad() {
        super.viewDidLoad()
        self.navigationItem.title = "Your Text"
    }
    
  • -1

    在Swift 4中:

    Swift 4

    override func viewDidLoad() {
        super.viewDidLoad()
    
        self.title = "Your title"
    }
    

    我希望它有所帮助,问候!

  • 5

    以下代码适用于Xcode 7:

    override func viewDidLoad() {        
        super.viewDidLoad()
        self.navigationItem.title = "Your Title"
    }
    
  • 410

    如果您将尝试手动创建 Navigation Bar ,此代码将帮助您

    func setNavBarToTheView() {
        let navBar: UINavigationBar = UINavigationBar(frame: CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 64.0))
        self.view.addSubview(navBar);
        let navItem = UINavigationItem(title: "Camera");
        let doneItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.cancel, target: self, action: #selector(CameraViewController.onClickBack));
        navItem.leftBarButtonItem = doneItem;
        navBar.setItems([navItem], animated: true);
    }
    
  • 46

    Swift 3

    我为故事板中的导航栏(来自对象浏览器)附带的导航 Headers 栏项创建了一个插座 . 然后我起诉了下面这一行:

    navigationBarTitleItem.title = "Hello Bar"
    
  • 11

    viewDidLoad 中尝试以下操作

    self.navigationItem.title = "Your Title"
    
  • 4

    我发现这个工作:

    navigationItem.title = "Title"
    

相关问题