首先,我有一个幻灯片应用程序,我有一个tableview。 通过在主菜单中点击单元格“CellInMainMenu”,应用程序通过push打开tableview“TV1”,并且此tableview(“TV1”)中的单元格通过数组填充数据。当我将此tableview(“TV1”)滑动到侧面,并再次在单元格“CellInMainMenu”上再次tapps时,应用程序再次打开tableview(“TV1”),但是! Tableview(“TV1”)启动AGAIN以填充信息!如何在启动应用程序时使应用程序一次加载所有数据?
(我真的很抱歉我的英语,因为这不是我的语言)
有人能帮助我吗?
“TV1”中的代码:
- (void)viewDidLoad
{
[super viewDidLoad];
daoDS = [[SampleDataDAO alloc] init];
self.ds = daoDS.PopulateDataSource;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"TV1CellId";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier];
}
SampleData *sample = [self.ds objectAtIndex:indexPath.row];
cell.textLabel.text = sample.HeroesName;
cell.textLabel.textColor = [UIColor whiteColor];
cell.textLabel.font = [UIFont fontWithName:@"Trajan-Regular" size:18.0f];
return cell;
}
(所有申请都运作正常,我只想知道如何只加载一次而不是每次都加载)
答案 0 :(得分:0)
问题不在于您的表视图代码,而在于您如何推送它。如果您调用segue,它将始终创建一个新的。
相反,您只能在第一次推送它,保留对它的引用,然后根据您选择的菜单进行更新。一些自定义委托@protocol
可能是最好的模式。