我已经设置了两个NSTableViews,由一个nstableviewdatasource和delegate填充。两个tableviews在首次加载时都会收到数据而没有问题,但是它们拒绝重新加载数据。 tableview数据源和委托都连接到xib中的tableviewcontroller类对象。
我已经确认我的方法,它将新数据设置为我用来填充tableviews的数组,实际上接收更改的数据。这种方法是我填充数据源委托方法使用的数组的唯一方法。它正在从主线程重新加载:
myArray = [classThatHoldsNewVariables.array mutableCopy];
[self.myTableView reloadData];
使用reloadData不会调用-numberOfRowsInTableView。它只会在应用程序启动时调用。
我尝试在代码中手动设置数据源和委托方法,但没有任何成功。我已经尝试了很多不同的方法让reloadData工作,没有任何反应。
帮助:(
修改
我解决了这个问题。这是一个实例问题,我从另一个类中分配init我的nstableviewdatasource来重新加载数据。 Init不加载nib使用的实例,因此它正在重新加载我的tableview的另一个实例,该实例未向用户显示。我通过在tableviewcontroller类中实现nsnotifications来解决这个问题。
答案 0 :(得分:0)
听起来像myTableView
nil
,因此发送reloadData
方法并不做任何事情。
如果它是插座,请确保它已连接到xib中。如果没有,请注意默认情况下,UITableViewController
的表格视图由tableView
属性引用,而不是myTableView
。
答案 1 :(得分:0)
我解决了这个问题。这是一个实例问题,我从另一个类中分配init我的nstableviewdatasource来重新加载数据。 Init不会加载nib使用的实例,因此它会重新加载我的tableview的另一个实例,而不会向用户显示。我通过在tableviewcontroller类中实现nsnotifications来解决这个问题。