将自定义类分配给控制器后,Xcode Table View 被擦除
Posted
技术标签:
【中文标题】将自定义类分配给控制器后,Xcode Table View 被擦除【英文标题】:Xcode Table View erased after assigning custom class to controller 【发布时间】:2014-01-22 14:36:59 【问题描述】:我正在使用 XCode 5,但在将类分配给 TableViewController 时遇到问题
我在 TableViewController 中使用 tableViews 制作了一个表单。 TableView 具有静态单元格,这些单元格包含用于用户输入的文本框。
问题是在设计好tableView之后,我给它添加了一个自定义类。当我运行程序时,视图是一个空的表格视图,但在情节提要中看起来像是我设计的。
所以也许在分配自定义类(这是一个新的空类 UITableViewController)之后,一切要么没有被加载,要么被重新实例化?
添加:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
// Configure the cell...
return cell;
这是默认方法。
【问题讨论】:
你的数据源是什么样的,你有没有把你的类连接到笔尖? 你能发布你的-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
吗?
您确定将 tableview 设置为静态单元格而不是动态原型吗?
是的,我确定单元格是静态的而不是动态的
我发布了 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath,现在我看到了,那个控制器只是发布了默认单元格,但是我该如何发送它的设计是什么>
【参考方案1】:
您需要为UITableViewCell
创建自定义类,而不是为UITableView
创建它,因为表格视图包含默认的tableViewCell,但您的单元格包含默认情况下不包含的文本字段。让我知道您是否需要在这里更清楚
【讨论】:
那么,让我看看我是否明白了...我将为每种类型的 tableviewcell 创建一个类?然后将所有自定义 TableViewCells 发送到 > -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 不。实际上你必须在这里使用原型单元格,然后为所有单元格使用一个类。【参考方案2】:以上都没有帮助我。这就是解决问题的方法:
发生了什么事?问题是即使使用静态单元而不是原型,TableViews 也试图使用他的数据源来显示单元格(我分配给其控制器的类)。这很容易,我只需要删除 TableViewController 类中的方法。
可能是因为该类有一个不应该存在的函数,或者是因为 TableView 有与之链接的 DataSource。
结果是一个带有静态表的 TableViewController。
【讨论】:
以上是关于将自定义类分配给控制器后,Xcode Table View 被擦除的主要内容,如果未能解决你的问题,请参考以下文章
如何将自定义类分配给 TableViewController
将自定义导航栏分配给 UINavigationController [重复]