#iphone #ios #uitableview #reloaddata
#iPhone #iOS #uitableview #reloaddata
Вопрос:
Я не могу перезагрузить данные в своем табличном представлении, когда я использую dismissModalViewControllerAnimated
, однако он работает идеально, если я использую pushViewController
.
Я звоню reloadData
viewWillAppear
.
Вот как я переключаю представления:
- (IBAction)addAction:(id)sender
{
NSLog(@"Add Button Pressd");
AddNewDrinks *newView = [[AddNewDrinks alloc] initWithNibName:@"AddNewDrinks" bundle:nil];
self.addNewDrink = newView;
[self presentModalViewController:addNewDrink animated:YES];
[newView release];
}
- (void)viewWillAppear:(BOOL)animated
{
[self.drinkTableView reloadData];
[super viewWillAppear:animated];
}
Это то, что я использовал, чтобы вернуться к предыдущему представлению.
- (IBAction)save:(id)sender
{
NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
path = [path stringByAppendingPathComponent:@"drinks.plist"];
NSString *drinkName = self.name.text;
NSString *drinkIngredients = self.ingredients.text;
NSString *drinkDirection = self.directions.text;
NSArray *values = [[NSArray alloc] initWithObjects:drinkDirection, drinkIngredients, drinkName, nil];
NSArray *keys = [[NSArray alloc] initWithObjects:DIRECTIONS_KEY, INGREDIENTS_KEY, NAME_KEY, nil];
if(drinkName.length != 0)
{
NSDictionary *dict = [[NSDictionary alloc] initWithObjects:values forKeys:keys];
[self.drinkArray addObject:dict];
[dict release];
}
[self.drinkArray writeToFile:path atomically:YES];
[self dismissModalViewControllerAnimated:YES];
}
К сожалению, данные представления моей таблицы не перезагружаются.
Ответ №1:
Судя по всему, вы записываете отредактированный массив в файл, но не считываете его обратно перед перезагрузкой таблицы.
В viewWillAppear попробуйте прочитать новый файл в память, а затем перезагрузить таблицу.
Ответ №2:
Вызывается ли viewWillAppear после отклонения контроллера модального представления? Является ли ваша таблица допустимым объектом?
Комментарии:
1. да, viewWillAppear получит вызов, как только я отклоню контроллер представления модели. И я еще раз проверил свое табличное представление, кажется, все в нужном месте.
2. Спасибо, что пытались мне помочь. Я действительно ценю это.:)
Ответ №3:
Вы считываете из файла данные, которые вы представляете в tableview?
Комментарии:
1. я ничего не возвращаю. просто добавляю некоторые данные в мой источник данных, который в моем случае является списком, и перезагружаю данные, поскольку источник данных был изменен.
2.Спасибо, что пытались мне помочь. Я действительно ценю это.:)