Я попытался загрузить мой Array
s, как это, но он загружает только первый Array
, а другие не отображаются.Как показать и скрыть массив в uitableview
- (void)viewDidLoad {
[super viewDidLoad];
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *path = [[documentPaths lastObject] stringByAppendingPathComponent:@"test.plist"];
NSDictionary *myDict = [NSDictionary dictionaryWithContentsOfFile:path];
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"blackKey"])
{
NSArray *black = [myDict objectForKey:@"Black"];
self.tableData = [black copy];
}
else if ([[NSUserDefaults standardUserDefaults] boolForKey:@"greenKey"])
{
NSArray *green = [myDict objectForKey:@"Green"];
self.tableData = [green copy];
}
else if ([[NSUserDefaults standardUserDefaults] boolForKey:@"purpleKey"])
{
NSArray *purple = [myDict objectForKey:@"Purple"];
self.tableData = [purple copy];
}
else if ([[NSUserDefaults standardUserDefaults] boolForKey:@"orangeKey"])
{
NSArray *orange = [myDict objectForKey:@"Orange"];
self.tableData = [orange copy];
}
else if ([[NSUserDefaults standardUserDefaults] boolForKey:@"blueKey"])
{
NSArray *blue = [myDict objectForKey:@"Blue"];
self.tableData = [blue copy];
}
else if ([[NSUserDefaults standardUserDefaults] boolForKey:@"redKey"])
{
NSArray *red = [myDict objectForKey:@"Red"];
self.tableData = [red copy];
}
else if ([[NSUserDefaults standardUserDefaults] boolForKey:@"darkblueKey"])
{
NSArray *darkblue = [myDict objectForKey:@"Darkblue"];
self.tableData = [darkblue copy];
}
else if ([[NSUserDefaults standardUserDefaults] boolForKey:@"yellowKey"])
{
NSArray *yellow = [myDict objectForKey:@"Yellow"];
self.tableData = [yellow copy];
}
}
Что я делаю неправильно?
Также, я хотел бы показать название массива как заголовок раздела, как это можно сделать ?
- И есть ли способ ограничить ряды на раздел (мой массив)?
РЕДАКТИРОВАТЬ
// Customize the number of rows in the table view.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [tableData count];
}
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
NSDictionary *dict = [tableData objectAtIndex:indexPath.row];
cell.textLabel.text = [NSString stringWithFormat:@"%@ - %@", [dict objectForKey:@"Name"], [dict objectForKey:@"Address"]];
return cell;
}
EDIT2
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
[sectionsTitle objectForKey:[sectionTitle objectAtIndex:indexPath.section]];
}
Использование необъявленной идентификатора 'indexPath'; Вы имели в виду «NSIndexPath»?
Спасибо , похоже, это работает! Можете ли вы помочь мне с другими вопросами? Как я могу настроить свой массив (черный, зеленый) на заголовок раздела? –
@PavelKaljunen проверить мой обновленный ответ –
когда я установил tableData как NSMutableDictionary У меня возникла проблема с ARC «Нет видимого @interface для« NSMutableDictionary »объявляет селектор« objectAtIndex: »« –