2012年1月8日

[iOS] 讀入一個寫死的plist檔案到table

(不是一個好的做法)

#import

@interface FifthViewController : UIViewController

{

NSDictionary *names;

NSArray *keys;

UITableView *table;

}

@property (nonatomic, retain) NSDictionary *names;

@property (nonatomic, retain) NSArray *keys;

@end

----


#import "FifthViewController.h"

@implementation FifthViewController
@synthesize names;
@synthesize keys;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
}

#pragma mark - View lifecycle


- (void)viewDidLoad
{
[super viewDidLoad];

//唯讀的路徑 bundle裡面的路徑都是唯讀的
NSString *path = [[NSBundle mainBundle] pathForResource:@"sortednames"
ofType:@"plist"];
NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:path];
self.names = dict;

NSArray *array = [[names allKeys] sortedArrayUsingSelector:@selector(compare:)];
self.keys = array;

UITableView *plistTable = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, 320, 367) style:UITableViewStylePlain];
[plistTable setDataSource:self];
[plistTable setDelegate:self];

[self.view addSubview:plistTable];

[[self navigationItem] setLeftBarButtonItem:[self editButtonItem]];

}

- (void)viewDidUnload
{
self.names = nil;
self.keys = nil;
[super viewDidUnload];
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

#pragma mark -
#pragma mark Table View Data Source Methods

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return [keys count];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
NSString *key = [keys objectAtIndex:section];
NSArray *nameSection = [names objectForKey:key];
return [nameSection count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSUInteger section = [indexPath section];
NSUInteger row = [indexPath row];

NSString *key = [keys objectAtIndex:section];
NSArray *nameSection = [names objectForKey:key];

static NSString *SectionsTableIdentifier = @"SectionsTableIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:
SectionsTableIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc]
initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:SectionsTableIdentifier];
}

cell.textLabel.text = [nameSection objectAtIndex:row];
return cell;
}

#pragma - Table Title

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
NSString *key = [keys objectAtIndex:section];
return key;
}

#pragma - Enable/Disable Edit Button

- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
[super setEditing:editing animated:animated];
[table setEditing:editing animated:animated];

if(self.editing)
{
UIBarButtonItem *addButton = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemAdd
target:self
action:@selector(addButtonPressed:)];
[[self navigationItem] setRightBarButtonItem:addButton];
}
else
{
[[self navigationItem] setRightBarButtonItem:nil];
}

}


@end

0 意見:

張貼意見