我有一个按钮,当点击时会显示一个带有表视图的弹出框,显示一些数据列表。
在选择表格视图行时,我想在单元格的右侧显示一个复选标记,但代码不起作用。有人可以帮我诊断吗?
如果我只使用普通的tableview而不是popover表视图,那么相同的代码运行良好。
目前我使用的是XCode 5.1.1,iOS7.1,iPad模拟器。
//@property (assign,nonatomic)int selectedIndex;
//@property (strong,nonatomic)NSMutableArray *listArray;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
self.listArray=[[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3", nil];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return [self.listArray 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];
}
// Configure cell now
cell.textLabel.text = [self.listArray objectAtIndex:indexPath.row];
if(indexPath.row == self.selectedIndex)
{
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
else
{
cell.accessoryType = UITableViewCellAccessoryNone;
}
return cell;
}
#pragma mark - Table view delegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
self.selectedIndex = indexPath.row;
[tableView reloadData];
}
//For Button Action Method
- (IBAction)buttonAction:(id)sender {
UIButton *button = (UIButton*)sender;
TableViewController *tableViewController = [[TableViewController alloc] initWithNibName:@"TableViewController" bundle:nil];
self.popover = [[UIPopoverController alloc] initWithContentViewController:tableViewController];
[self.popover presentPopoverFromRect:[sender bounds] inView:button permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];
}
答案 0 :(得分:1)
代码没有错。您的popoverview不够大,无法覆盖tableview的右边界。使你的桌面框架正确,你会找到复选标记。