推送 UIViewController 的自定义导航栏

Posted

技术标签:

【中文标题】推送 UIViewController 的自定义导航栏【英文标题】:Custom navigation bar for pushed UIViewController 【发布时间】:2016-09-12 06:39:45 【问题描述】:

如果我使用 navigationController.pushViewController(controller:animated:completion:) 将其推送到 navigationController 上,同时保留“Back”按钮,如何在推送的视图控制器的导航栏上设置标题和按钮?

提前谢谢你!

【问题讨论】:

可以在push view controller的viewDidLoad方法中设置title和bar项 @pkc456 哦,对了,我尝试通过self.navigationController?.navigationItem访问navigationItem,而不是直接访问。 【参考方案1】:

对于任何想知道如何执行此操作的人,只需直接覆盖您推送的UIViewControllernavigationItem 属性。我的错误是我试图通过self.navigationController?.navigationItem 来完成此操作

【讨论】:

【参考方案2】:

这是设置导航标题和左键的代码

代码:

    override func viewDidLoad() 
    super.viewDidLoad()

    // Do any additional setup after loading the view.

    //For Setting Title
    self.title = "New Title";

    //For setting button in place of back button
    let leftItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Cancel, target: self, action: "leftButtonClicked");
    self.navigationItem.leftBarButtonItem = leftItem;

编码愉快...

【讨论】:

以上是关于推送 UIViewController 的自定义导航栏的主要内容,如果未能解决你的问题,请参考以下文章

从另一个 UIViewController 推送一个 UIViewController - 如何?

从 UIViewController 中删除我的自定义 MKMapView

instantiateViewControllerWithIdentifier 上的自定义 UIViewController

带有旋转的自定义 UIViewController 过渡

如何让 UITableView 继承 UIViewController 的自定义子类?

一个 UIViewController 中的自定义单元格 tableview 和默认 UITableView