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