0
我有一個應用程序有一個標籤欄,每個標籤包含一個單獨的表。第一個表使用核心數據來堅持其條目和複選標記。在第二個選項卡上的第二個表使用NSMutableArray來填充它(我會使用核心數據,但我將不得不預先填充它,這張表不允許這樣做)我想持久性複選標記以我在第一個包含核心數據的表格,但有些錯誤。代碼如下所示:無論如何填充UITableView數組,但堅持複選標記?
-(void)viewDidLoad {
[super viewDidLoad];
airport = [[NSMutableArray alloc] init];
[airport addObject:@"Passport"];
}
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
// Customize the number of rows in the table view.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [airport 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] autorelease];
}
// Set up the cell...
NSString *cellValue = [airport objectAtIndex:indexPath.row];
cell.textLabel.text = cellValue;
//[cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];
NSManagedObject *item = [[self fetchedResultsController] objectAtIndexPath:indexPath];
cell.textLabel.text = [item valueForKey:@"name"]; //CHANGED TO DETAIL
if ([[item valueForKey:@"check"] boolValue]) {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
} else {
cell.accessoryType = UITableViewCellAccessoryNone;
}
cell.selectionStyle = UITableViewCellSelectionStyleNone;
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSManagedObject *selectedObject = [self.fetchedResultsController objectAtIndexPath:indexPath];
if ([[selectedObject valueForKey:@"check"] boolValue]) {
[selectedObject setValue:[NSNumber numberWithBool:NO] forKey:@"check"];
} else {
[selectedObject setValue:[NSNumber numberWithBool:YES] forKey:@"check"];
}
UITableViewCell *thisCell = [tableView cellForRowAtIndexPath:indexPath];
if (thisCell.accessoryType == UITableViewCellAccessoryNone) {
thisCell.accessoryType = UITableViewCellAccessoryCheckmark;
} else {
thisCell.accessoryType = UITableViewCellAccessoryNone;
}
[tableView deselectRowAtIndexPath:indexPath animated:NO];
}
我相信行cell.textLabel.text = [項目valueForKey @ 「名」]; 是什麼造成它。我想要做的就是從數組中填充表,並且複選標記保持不變。任何幫助是極大的讚賞。提前致謝。
名稱是名爲「Hero」的實體中的一個屬性這就是我的第一個表的工作方式,它在加載時檢查名稱是否有複選標記。有什麼辦法可以堅持與數組或預先加載的列表複選標記? – Tanner 2010-02-15 05:58:27
有很多方法可以用Core Data來做你想做的事情。我將使用Core Data,因爲您已經在使用它,但是如果您想要,您可以使用屬性列表(plist)來持久化已檢查的數據數組。 – gerry3 2010-02-15 06:35:06
我如何使用plist來堅持複選標記?陣列會取代plist嗎? – Tanner 2010-02-15 14:20:15