我正在用 XCode6 编写一个应用程序。目前我有“SelectionTableViewController.h”和“SelectionTableViewController.m”,这样您就可以在选择时添加/删除复选标记。此外,我在情节提要中有一个表格视图控制器 segue,它由前一个表格视图控制器中的静态单元格触发。我在情节提要中设置了触发器,所以我没有为“准备转场”或任何东西编写代码。我希望默认检查单元格,所以我做了以下事情:
- 将视图控制器更改为“SelectionTableViewController”
- 将我的故事板上原型单元的标识符设置为“SelectionCell”
- 将单元格的背景颜色更改为橙色,将附件更改为复选标记
下面是我的 SelectionTableViewController.m:
@implementation SelectionTableViewController
- (void)viewDidLoad
{
[super viewDidLoad];
[self.tableView registerClass:[UITableViewCell class]
forCellReuseIdentifier:@"SelectionCell"];
}
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:NO];
self.navigationItem.title = @"Select";
[self.tableView reloadData];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return [[[MyStore sharedStore] allCategories] count];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
NSString *category = [[[MyStore sharedStore] allCategories] objectAtIndex:section];
return [[[MyStore sharedStore] allNamesForCategory: category] count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath(NSIndexPath*)indexPath
{
UITableViewCell *cell=[tableViewdequeueReusableCellWithIdentifier:@"SelectionCell"forIndexPath:indexPath];
// Configure the cell...
NSString *category = [[[MyStore sharedStore] allCategories] objectAtIndex:indexPath.section];
NSArray *items = [[MyStore sharedStore] allNamesForCategory: category];
cell.textLabel.text = [items objectAtIndex:indexPath.row];
return cell;
}
#pragma mark - Table view delegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
if (cell.accessoryType == UITableViewCellAccessoryCheckmark) {
cell.accessoryType = UITableViewCellAccessoryNone;
} else {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
}
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
return [[[MyStore sharedStore] allCategories] objectAtIndex:section];
}
@end
我的程序在模拟器上运行,单元格中列出的项目是正确的。但是,在我进行选择之前,单元格上没有默认复选标记。细胞也不是橙色的。我知道我可以轻松地在代码中设置默认复选标记和背景颜色,但我只想弄清楚如何在界面构建器中执行此操作,因为在设置程序时我会经常处理 UI。
希望有人可以帮助我,因为我对 iOS 编程有点陌生,这是我第一次使用 Storyboard。谢谢!