Nin*_*ina 1 uitableview nib ios swift
我收到此错误:
'NSInternalInconsistencyException', reason: 'unable to dequeue a cell with identifier NavigationNodeCell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard'
Run Code Online (Sandbox Code Playgroud)
我使用两个具有相同类"NavigationItemCell"和两个标识符"NavigationNodeCell"和"NavigationLinkCell"的单元格.
我创建了一个单元格,例如:
let cell: NavigationItemCell = self.tableView.dequeueReusableCellWithIdentifier("NavigationNodeCell", forIndexPath: indexPath) as! NavigationItemCell
Run Code Online (Sandbox Code Playgroud)
这个问题一直存在于我之前,例如dequeueReusableCellWithIdentifier:forIndexPath中的断言失败:
据我所知(例如Sebastian Borggrewe的anser),它应该足以在故事板中注册UITableViewCell及其自定义类和标识符.
这正是我所做的,我仍然得到这个错误.我试图使用两个不同的类,但它没有解决错误.我也尝试用笔尖注册我的细胞但是我遇到了其他问题(标签是零).
我发现这个问题可能会发生,因为我以编程方式实例化了一个新的表视图控制器.
var newController = MyTableViewController()
Run Code Online (Sandbox Code Playgroud)
这是否意味着我还要注册笔尖?这是一个问题,我必须两次注册同一个班级?我如何避免nil标签的问题?
您应该使用storyboard ID创建视图控制器的实例.用var newController = MyTableViewController()以下代码替换该行
let storyboard = UIStoryboard(name: "YOUR_STORYBOARD_NAME", bundle: nil)
let newController = storyboard.instantiateViewController(withIdentifier: "VIEWCONTROLLER_ID_FROM_STORYBOARD")
Run Code Online (Sandbox Code Playgroud)
编辑:
也可以使用:
self.storyboard!.instantiateViewControllerWithIdentifier("VIEWCONTROLLER_ID_FROM_STORYBOARD")
如果视图控制器是从故事板中实例化的,则第二个视图控制器位于同一个故事板中
| 归档时间: |
|
| 查看次数: |
2276 次 |
| 最近记录: |