На самом деле даже разгрузки вида будет достаточно, чтобы выбросить клетки.Попробуйте это в вашем viewDidLoad:
if(!cells) {
NSString * myFile = [[NSBundle mainBundle]pathForResource:@"cells" ofType:@"plist"];
self.myTableView.backgroundColor = [UIColor clearColor];
cells = [[NSMutableArray alloc]initWithContentsOfFile:myFile];
}
(таким образом вы не будете перечитывать массив при каждой загрузке представления).
И если вы хотите, чтобы добавленные ячейки сохранялись междуприложение перезагружается, вам нужно их где-то сохранить.Вы не можете изменить файлы в основном комплекте, но вы можете записать свой собственный файл в папку Caches, которую вы можете получить через:
[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];
Запишите свой файл в эту папку и прочитайте ячейки изтам вместо основного комплекта.Если у вас есть несколько предопределенных ячеек в основном файле комплекта, вы можете проверить, существует ли файл в папке Caches при запуске приложения, и если нет, скопировать файл комплекта в папку Caches.
РедактироватьЕсли вы сделаете presentModalViewController, чтобы вернуться с другой страницы, вы получите свежую копию FacePlatesViewController, которая, очевидно, загружает ячейки по умолчанию из файла.Вместо этого вы должны добавить свойство «делегат» в свой FirstFolderViewController:
@property(nonatomic, assign) id delegate; //yes, assign, not retain
, затем при представлении FirstFolderViewController выполните:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
FirstFolderViewController * first = [[FirstFolderViewController alloc]init];
first.delegate = self;
first.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:first animated:YES];
[first release];
}
Затем добавьте метод в FacePlatesViewController:
- (void) onDoneWithFirstFolderViewController //you can come up with a better name
{
[self dismissModalViewControllerAnimated:YES];
}
и в вашем FirstFolderViewController, когда вы будете готовы закрыть его, выполните:
if([delegate respondsToSelector:@selector(onDoneWithFirstFolderViewController)])
[delegate onDoneWithFirstFolderViewController];
Как ни странно, если вы реализовали сохранение ячейки в файле, эта проблема могла бы остаться незамеченной (поскольку каждыйновый FacePlatesViewController будет загружать обновленный список ячеек), но у вас будет утечка памяти при каждом переходе между страницами.