我在故事板中有一个带有tableview的视图控制器,如下所示:
它的类是这个(我将iboutlet tableview称为'tabella'):
class RisultatiRicerca: UIViewController , UITableViewDataSource , UITableViewDelegate{
var codeSearch = 0
@IBOutlet public var tabella : UITableView!
override func viewDidLoad() {
super.viewDidLoad()
self.tabella.estimatedRowHeight = 50
self.tabella.rowHeight = UITableViewAutomaticDimension
self.tabella.delegate = self
self.tabella.dataSource = self
self.tabella.reloadData()
}
@available(iOS 2.0, *)
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cella = tableView.dequeueReusableCell(withIdentifier: "risu") as! CellaRisultato
return cella
}
@available(iOS 2.0, *)
public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int{
return 10
}
}
我的问题是:
我必须创建上面这个的子类,例如:
class TuttiRicerca: RisultatiRicerca {
override func viewDidLoad() {
super.viewDidLoad()
self.codeSearch = 1
}
}
但是当我出示TuttiRicerca
时,我收到此错误('tabella'为零):
这就像子类没有链接故事板中的tableview。 你能救我吗?
答案 0 :(得分:1)
如果您想要IBOutlet
引用,则不能只引用TuttiRicera()
。它如何知道您尝试使用的故事板中的哪个场景(即使您只有一个场景)?
你需要给故事板场景一个" storyboard id"然后通过故事板进行实例化(例如storyboard.instantiateViewController(withIdentifier: "...")
,而不是TuttiRicera()
。请参阅instantiateViewController(withIdentifier:)
。