相关疑难解决方法(0)

使用单独的委托/ dataSource时出现UITableView问题

概述:

首先,我UITableView使用Interface Builder将其置于Xcode生成的视图中.视图的文件所有者设置为Xcode生成的子类UIViewController.为了这个子类我已经加入工作的实施numberOfSectionsInTableView: tableView:numberOfRowsInSection:以及tableView:cellForRowAtIndexPath:与表视图的dataSource,并delegate通过在Interface Builder文件所有者连接到这个类.

上述配置没有问题.当我想将这个Table View dataSourcedelegate-implementations移到一个单独的类时,问题就出现了,很可能是因为除了Table View之外还有View上的其他控件,我想将Table View相关的代码移到它的自己的班级.为此,我尝试以下方法:

  • UITableViewController在Xcode中创建一个新的子类
  • 移动已知良好的实现numberOfSectionsInTableView:,tableView:numberOfRowsInSection:并移动tableView:cellForRowAtIndexPath:到新的子类
  • 将a 拖到InterfaceBuilder中现有 XIB UITableViewController的顶层 ,删除为此自动创建的/ ,然后将该类设置为与新子类匹配UIViewUITableViewUITableViewControllerUITableViewController
  • 删除以前工作UITableView的现有dataSourcedelegate连接,并将它们连接到新的UITableViewController

完成后,我没有工作UITableView.我最终得出了三个结果中的一个,这些结果似乎随机发生:

  • UITableView加载时,我得到一个运行时错误,指示我发送tableView:cellForRowAtIndexPath:到一个无法识别它的对象
  • UITableView加载时,项目会毫无错误地进入调试器
  • 没有错误,但UITableView没有出现

通过一些调试并创建了一个基本项目来重现这个问题,我通常会看到上面的第三个选项(没有错误但没有可见的表视图).我添加了一些NSLog调用,发现虽然numberOfSectionsInTableView:并且numberOfRowsInSection:都被调用,但cellForRowAtIndexPath:不是.我确信我错过了一些非常简单的事情,希望对于经验丰富的人来说答案可能是显而易见的.如果这不是一个简单的答案,我很乐意更新一些代码或示例项目.谢谢你的时间!

完成重现的完整步骤:

  • 在Xcode中创建一个新的iPhone OS,基于视图的应用程序并调用它 TableTest
  • TableTestViewController.xib …

iphone cocoa-touch objective-c uitableview

54
推荐指数
2
解决办法
5万
查看次数

如何在iphone的单视图控制器中使用两个以上的UITableView

UITableView在a中使用两个s UIViewController,如何在两个tableviews中填充行和单元格?当我给第二个tableview时,它表示部分中行数的重复声明等.

iphone xcode uitableview

8
推荐指数
1
解决办法
2万
查看次数

标签 统计

iphone ×2

uitableview ×2

cocoa-touch ×1

objective-c ×1

xcode ×1