我有一个UserData类,我导入到这个viewcontroller但是单元格上的数据
是空白的。
userdata再次是另一个类UserData的对象。我做了#import "UserData.h"
,但桌子是空的
如果我用@“something”代替detailsstring或titlestring,它会显示在表格
- (void)viewDidLoad
{
detailsstring = userdata.details;
titlestring = userdata.title;
tabledata = [[NSMutableArray alloc] initWithObjects:detailsstring, nil];
tablesubtitles = [[NSMutableArray alloc] initWithObjects:titlestring, nil];
[super viewDidLoad];
}
和...
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
{
UITableViewCell *cell = nil;
cell = [tableView dequeueReusableCellWithIdentifier:@"homeworkcell"];
if(cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"homeworkcell"];
}
cell.textLabel.text = [tabledata objectAtIndex:indexPath.row];
cell.detailTextLabel.text = [tablesubtitles objectAtIndex:indexPath.row];
cell.textLabel.font = [UIFont systemFontOfSize:14.0];
答案 0 :(得分:2)
您需要在视图控制器之间共享数据,当您使用#import "yourClass"
创建具有相同名称的clas的新实例时,但不会保留相同的内容(新的内容将为nil)。要在视图之间共享数据,您可以使用this answer等代理,核心数据或 SQLite 可用于相同目的。但是,从我所看到的所有答案和评论中看到的删除更好:)
编辑由于 Jack Lawrence 也有评论,NSUserDeffaults不是在类和对象之间共享数据的正确方法。仅仅因为它易于使用我提到了默认值。我希望这个编辑对以后看到这个答案的人有用
答案 1 :(得分:0)
如果您使用字符串文字替换detailsstring
并且一切正常,那么detailsstring
中的viewDidLoad
必须为零