UITableView
每次导航包含此表的视图时,我都会尝试刷新。
我有ViewController
一个自定义,可以在应用程序启动时使用包含在控制器UITableViewController
中的一个来正确设置表格。NSMutableArray
当我导航到包含该表的页面时,它ViewController
会调用一个函数,该函数通过 HTTP 请求从服务器获取数据并将其解析为NSMutableArray
.
现在这是我的问题。我设法将此数组发送到我的UITableViewController
,但是当我想刷新我的 tableView 时,什么也没有发生。
我尝试使用[myTable reloadData]
,但它不调用 numberOfRowsInSection 或cellForRowAtIndexPath
函数。我看到有同样问题的人使用它解决了它[self.myTable ReloadData]
,但我收到一个错误:
访问未知的 getter/setter 方法
我对 Objective-C 很陌生,这个错误对我来说仍然有点神秘,因为我有点随机地得到它。
无论如何,我很有可能在声明UITableViewController
(我应该在哪里声明它?)和 Interface Builder 链接时搞砸了,所以这可能是找到解决方案的线索。
有人有想法吗?
非常感谢你!
编辑:这是我的 tableview 控制器类:
#import "MyCell.h"
@class Mycell;
@interface MyTableController : UITableViewController {
IBOutlet MyCell * myCell;
IBOutlet UITableView * myTable;
NSMutableArray *data;
}
@property (nonatomic, retain) IBOutlet UITableView * myTable;
- (void) EditTable : (NSMutableArray*) param;
@end
现在.m:
@implementation MyTableController
@synthesize myTable;
- (void) viewDidLoad {
[super viewDidLoad];
myTable = [[UITableView alloc] init];
data = [[NSMutableArray alloc] init];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [data count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"MyCell";
MyCell *cell = (MyCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; >
if (cell == nil) {
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"MyCell" owner:self options:nil];
for (id currentObject in topLevelObjects){
if ([currentObject isKindOfClass:[UITableViewCell class]]){
cell = (MyCell *) currentObject;
}
}
}
NSString *datastring = [listenom objectAtIndex:indexPath.row];
[cell setCell: datastring ];
return cell;
}
- (void) EditTable : (NSMutableArray*) param{
//This function is called by the ViewController when the user goes to the page containing the view
data = param; //The param array contains the data from the HTTP request
[self.tableView reloadData];
[self.myTable reloadData]; //I tried both, but only the first one actually calls the previous functions
}