将Plist显示到UITableview中 [英] Display Plist into UITableview

查看:103
本文介绍了将Plist显示到UITableview中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将 Plist 显示到 UITableView 。通过我的下面的代码,我可以显示一个键值,即州名单。但我想显示三个表的所有值。

I want to display Plist to the UITableView .By my below code I can display one key values that is list of states. but i want to display all the values of three tables.

- (id)readPlist:(NSString *)fileName 
{
NSData *plistData;
NSString *error;
NSPropertyListFormat format;
id plist;

NSString *localizedPath = [[NSBundle mainBundle] pathForResource:fileName ofType:@"plist"];
plistData = [NSData dataWithContentsOfFile:localizedPath]; 

plist = [NSPropertyListSerialization propertyListFromData:plistData mutabilityOption:NSPropertyListImmutable format:&format errorDescription:&error];
if (!plist) {
NSLog(@"Error reading plist from file '%s', error = '%s'", [localizedPath UTF8String],      [error UTF8String]);

}

return plist;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return [[[self readPlist:@"sample"] objectForKey:@"ListOfStates"] count];

}


 - (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] autorelease];
}

cell.textLabel.text = [[[self readPlist:@"sample"] objectForKey:@"ListOfStates"] objectAtIndex:indexPath.row];

return cell;}

MY输出仅来自 listofkeystates values

MY output comes only listofkeystates values


还可以显示名称,其中

推荐答案

也许使用表格部分......

Maybe use table sections...

-(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
    NSDictionary* dict = [self readPlist:@"sample"];
    return dict.allKeys.count;
}

-(NSString*) tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
    NSDictionary* dict = [self readPlist:@"sample"];
    return [dict.allKeys objectAtIndex:section];
}

-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    NSDictionary* dict = [self readPlist:@"sample"];
    NSString* key = [dict.allKeys objectAtIndex:section];
    return [[dict valueForKey:key] count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    NSDictionary* dict = [self readPlist:@"sample"];
    NSString* key = [dict.allKeys objectAtIndex:indexPath.section];
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }

    cell.textLabel.text = [[dict objectForKey:key] objectAtIndex:indexPath.row];
    return cell;
}

这篇关于将Plist显示到UITableview中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆