我有一个带有搜索栏和搜索显示控制器的tableViewController。
主tableViewController的tableView在storyboard上定义了一个原型单元格。
我在线上崩溃了
FileManagerTableViewCell *cell = (FileManagerTableViewCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
即将显示搜索表视图。显然,搜索tableView无法访问故事板上主tableView上定义的原型单元格。
如何让搜索tableview访问在故事板上为主表视图定义的原型单元?
答案 0 :(得分:0)
如果您希望两个表都使用相同的单元格,则应该在xib文件中而不是在故事板中设计该单元格。使用两个表注册nib
registerNib:forCellReuseIdentifier:
。
答案 1 :(得分:0)
这个问题的答案很容易编辑,但很复杂,以便理解为什么Apple会创建像这样半熟的东西。解决方案来自this answer
的第一条评论答案是使用 self.tableview
代替tableview
。
FileManagerTableViewCell *cell = (FileManagerTableViewCell *)[self.tableView dequeueReusableCellWithIdentifier:cellIdentifier];
解释:当搜索开始时,iOS切换到显示搜索表视图但该tableView没有原型单元格,所以这一行
FileManagerTableViewCell *cell = (FileManagerTableViewCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
要求iOS从搜索tableView
中取出单元格。通过使用self.tableview,您要向dequeue
一个来自主tableView
的单元格,其中包含在故事板上定义的原型单元格。
我希望有一天iOS API可以让我们的生活变得轻松,这是今天发生的事情。