将自定义类分配给控制器后,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 [重复]

如何将自定义分配器的完全相同的状态传递给多个容器?

如何将自定义数组保存/重新加载到 plist

Angular - 将自定义验证器分配给 FormGroup

打字稿将自定义对象分配给任何对象