【问题标题】:how do I set up a navigation bar如何设置导航栏
【发布时间】:2017-10-18 14:48:17
【问题描述】:

我已经检查了我的代码几次,但我似乎无法找到答案。所以我有一个视图控制器,在那个视图控制器中,我有一个搜索栏。当我在搜索栏中输入时,会出现一个表格视图。表格视图来自另一个名为ResultsViewController 的视图控制器,搜索结果表格视图位于搜索栏的正下方,非常完美。

let locationSearchTable = UIStoryboard(name: "MainPage", bundle: nil).instantiateViewController(withIdentifier: "ResultsViewController") as! ResultsViewController
searchController = UISearchController(searchResultsController: locationSearchTable)
searchController?.searchResultsUpdater = locationSearchTable

但我的问题是,当我单击表格视图的单元格时,它会转到 detailedViewController 并失去其导航栏:

这是detailedViewController 的检查器属性:

我不确定出了什么问题,因为我可以从其他视图控制器转到 detailedViewController

【问题讨论】:

  • 当我在搜索栏中输入时,会出现一个表格视图 这个 tableView 是如何出现的?你用了 presentViewController 了吗?
  • @Krunal 我更新了它
  • @Surjeet 不,我使用的代码在我的问题中
  • 你的视图控制器是如何出现的?推送(从左到右导航)或呈现(从下到上导航)
  • @Krunal 的详细视图控制器?自下而上

标签: ios swift uitableview firebase


【解决方案1】:

您的详细信息视图控制器的故事板 segue 连接有问题。

确保以下几点:

  • 您已在表格视图列表控制器中嵌入了导航控制器
  • 从 'TableViewCell' 中移除 segue 连接并将其与视图控制器连接(ViewController >> Segue >> View Controller)
  • 您的 segue 连接为不存在的“推送”

这是示例快照,显示带有 segue 连接类型的导航栏:

现在,为确保导航控制器,将您的 segue 类型更改为 Push 并查看:

【讨论】:

  • 我就是这么做的。我也很困惑,因为我已经从其他多个 viewController 转到了 detailViewController 并且它不会丢失它的导航栏
  • 为确保导航控制器,将您的segue类型更改为push and see。
  • 要么执行推送导航,要么你的应用崩溃
  • 应用崩溃了
  • 这意味着您的 tableview 视图控制器没有嵌入它的导航控制器。在您的 tableiview 列表中嵌入导航控制器
【解决方案2】:

确保您的导航控制器栏没有隐藏。

//斯威夫特3

override func viewWillAppear(animated: Bool) {
    self.navigationController?.setNavigationBarHidden(false, animated: animated)
    }

//斯威夫特2

override func viewWillAppear(animated: Bool) {
    self.navigationController?.isNavigationBarHidden = false
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多