【问题标题】:Swift: Back Button shows in Storyboard but not SimulatorSwift:后退按钮显示在情节提要中,但不显示在模拟器中
【发布时间】:2019-03-24 09:57:25
【问题描述】:

后退按钮在 StoryBoard 中显示,但在模拟器中不显示。

我添加了一个从TableViewControllerDetailViewController 的segue 来传递数据。 Storyboard 自动在DetailViewController 上显示一个后退按钮,但是当我运行模拟器时,该按钮不显示。

这是我的故事板:

仔细观察TableViewControllerDetailViewController

但在我的模拟器中,按钮没有显示:

整个项目的层次结构:

我想知道在哪里配置后退按钮(在我的 segue 中?),或者删除按钮(不让它显示在情节提要中),以便我自己创建一个。

我的TableViewController中的segue代码:

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    performSegue(withIdentifier: "showDetailView", sender: indexPath)
}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    switch (segue.destination, sender) {
    case (let controller as DetailViewController, let indexPath as NSIndexPath):
        controller.receivedName = storeList[indexPath.row].name!
        controller.receivedDesc = storeList[indexPath.row].desc!
        controller.receivedRate = storeList[indexPath.row].rate
        controller.receivedUrl = storeList[indexPath.row].url!

    default:
        print("unknown segue")
        break
    }
}

【问题讨论】:

  • 使用hierarchy debugger检查后退按钮顶部是否有view出现
  • 您的表格视图控制器在 UINavigationController 中,对吧?
  • 您也可以检查一下没有为导航栏配置 UIAppearance 并且导航项外观没有配置为使用与导航栏相同的颜色
  • 你能检查你的 Storyboard segue 类型吗?是“展示(推送)”还是“展示细节”还是模态展示?如果你想启用 Back,它应该是 Push。
  • @Anand 嗨,这是表演(推送)

标签: ios swift button storyboard


【解决方案1】:

情节提要中的初始视图控制器实际上是 TabelViewController(您可以看到它有一个箭头)。

这就是为什么当您启动场景时 TableViewController 显示但它没有嵌入到导航中,因为导航控制器从未创建过。

只需将初始视图控制器更改为导航控制器或保存 TableViewController 的导航控制器之前的任何其他控制器。

您只需拖动箭头即可更改情节提要中的初始控制器

【讨论】:

  • 哦,是的,这是我的问题!当我设计 TableViewController 时,我将它设置为初始视图,这样我就可以在模拟器上立即跳转到它。但是我忘记改回来了。非常感谢!
猜你喜欢
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-12
  • 2023-03-16
  • 1970-01-01
相关资源
最近更新 更多