Popover TableView没有显示选择的选中标记(iOS7.1)

时间:2014-05-02 07:37:11

标签: ios objective-c uitableview checkmark

我有一个按钮,当点击时会显示一个带有表视图的弹出框,显示一些数据列表。

在选择表格视图行时,我想在单元格的右侧显示一个复选标记,但代码不起作用。有人可以帮我诊断吗?

如果我只使用普通的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];

}

1 个答案:

答案 0 :(得分:1)

代码没有错。您的popoverview不够大,无法覆盖tableview的右边界。使你的桌面框架正确,你会找到复选标记。