Segue没有显示导航栏

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Segue没有显示导航栏相关的知识,希望对你有一定的参考价值。

我有2个ViewControllers呈现新的ViewController

第一个是在导航控制器中,因此它可以按照预期的方式使用segue push。

然而第二个来自没有导航栏的ViewController。我是以编程方式呈现此视图。但是,当目的地出现时有2个问题......

1)没有导航栏。 2)显示的视图从第一个TableViewCell下面开始。

func goToLocation() {
    let locationTableVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "locationProfile") as! LocationTableViewController
    locationTableVC.documentId = selectedDocumentId!
    self.present(locationTableVC, animated: true, completion: nil)
}

LocationTableViewController.swift

// MARK: - View Will Appear
override public func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    UIApplication.shared.statusBarStyle = .lightContent

    // Make Nav Bar Translucent and Set title font/color
    self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
    self.navigationController?.navigationBar.shadowImage = UIImage()
    self.navigationController?.navigationBar.isTranslucent = true
    self.navigationController?.view.backgroundColor = .clear
    self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white, NSAttributedStringKey.font: UIFont.systemFont(ofSize: 20, weight: .semibold)]
    self.navigationController?.navigationBar.backIndicatorImage = UIImage(named: "back-arrow-white")

}

enter image description here

Segue显示从第一个TableViewCell开始,没有导航栏。 Segue shows starting below the first TableViewCell and without a navigation bar.

我试图重建的第一个segue就像这样...... enter image description here

答案

使用UINavigationController推送你的UIViewController,如下所示:

func goToLocation() {
    let locationTableVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "locationProfile") as! LocationTableViewController
    locationTableVC.documentId = selectedDocumentId!
    let navigationController = UINavigationController(rootViewController: locationTableVC)
    self.present(navigationController, animated: true, completion: nil)
}

以上是关于Segue没有显示导航栏的主要内容,如果未能解决你的问题,请参考以下文章

IOS:推送segue后导航栏消失

从 segue 显示视图时导航栏消失

模态 Segue 进入没有导航栏的导航控制器

执行 push segue 后,当给搜索栏焦点时,导航栏隐藏

展开 Segue 导致清晰的导航栏

在不显示标签栏的情况下执行对另一个导航控制器的 segue