【问题标题】:SearchBar connected with storyboard is nil与情节提要连接的 SearchBar 为零
【发布时间】:2017-10-16 14:03:14
【问题描述】:

我使用的是 Xcode 9.0。

我的问题很简单:我在 TableViewController 中放置了一个 UISearchBar 对象。我将此 mySearchBar 作为 IBOutlet 连接到 TableViewController 类:

   class MyTableViewController: UITableViewController, UISearchBarDelegate, UINavigationControllerDelegate {

    @IBOutlet weak var mySearchBar: UISearchBar!
    @IBOutlet var myTableView: UITableView!
}
override func viewDidLoad() {
    super.viewDidLoad()

    navigationController?.delegate = self

    self.mySearchBar.delegate = self // EXC_BREAKPOINT HERE
    self.myTableView.delegate = self

    self.myTableView.backgroundColor = UIColor.init(red: 0.0/255.0, green: 60.0/255.0, blue: 113.0/255.0, alpha: 1.0)
}

左侧的圆圈已填满 - 所以我确定对象已正确连接。 当我运行项目时,它停在上面的行,并显示错误消息:

致命错误:在展开 Optional 值时意外发现 nil。

我尝试过:

  • 清理项目并重建
  • 删除派生数据,清理并重建
  • 删除 StoryBoard 中的 UIsearchBar 对象,删除一个新对象并重新连接为 IBOutlet
  • 销毁 StoryBoard 中的控制器并重新创建一个全新的控制器。

我不知道继续。任何帮助表示赞赏。我知道你可以!

编辑:这里是 Connections Inspector 的屏幕截图:

EDIT2:Filtro Localita T 是我的 TableViewController,正如您在第二张截图中看到的那样

【问题讨论】:

  • 添加故事板的屏幕截图,选择 UISearchBar 并打开连接检查器(左侧边栏最后一个图标有圆圈和箭头)
  • 什么是 Filtro Localita t... 因为你的出口设置为 class MyTableViewController: 我希望在那里看到 MyTableViewController
  • @Ladislav 这正是你所期望的......
  • 不符合预期。 MyTableView 和 MyTableViewController 不是一回事。如果您想要连接插座,我希望右侧的类是 MyTableViewController。除非你说这是一个子类。
  • 我知道它们不一样 :) 右侧的类是 FiltroLocalitaTableViewController - 这是 MyTableViewController 的名称。我在第一篇文章中重命名了代码,只是为了更容易理解……如果造成混乱,请见谅!

标签: ios swift xcode uisearchbar iboutlet


【解决方案1】:

我解决了。问题在于推送到这个控制器。而不是:

let destinationView = FiltroLocalitaTableViewController()
destinationView.palina = self.transito.palina
self.navigationController?.pushViewController(destinationView, animated: true)

我用过:

let filtroLocalitaVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "filtroLocalitaView") as! FiltroLocalitaTableViewController
filtroLocalitaVC.palina = self.transito.palina
filtroLocalitaVC.delegate = self
self.navigationController?.pushViewController(filtroLocalitaVC, animated: true)

它成功了。

【讨论】:

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