deselectRowAtIndexPath

deselectRowAtIndexPath

我在应用程序中将ABPeoplePickerNavigationController显示为选项卡。用户单击一个名称,然后单击电子邮件地址,然后单击该电子邮件地址。

之后,我希望他们选择淡出(不突出显示)的人员和属性(property)。

在普通表中,我将调用deselectRowAtIndexPath。但是,使用ABPeoplePickerNavCont,我似乎无法访问它的表,也不知道选择了哪个indexPath,也没有用于取消选择行的api。

在大多数应用程序中,都以模态方式使用ABPeoplePickerNavCont,因此该行仍然突出显示并不重要,因为整个事情都会被忽略。但是在我的应用程序中,它不会被关闭(就像“电话”应用程序中的“联系人”选项卡一样)。

有任何想法吗?

最佳答案

这就是我正在做的事情……而且看起来运行良好。当您选择/取消选择一个项目时,我还会添加一个选中标记附件。让我知道你的想法。谢谢 :)

UIView *view = peoplePicker.topViewController.view;
UITableView *tableView = nil;
for(UIView *uv in view.subviews)
{
    if([uv isKindOfClass:[UITableView class]])
    {
        tableView = (UITableView*)uv;
        break;
    }
}

if(tableView != nil)
{
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:[tableView indexPathForSelectedRow]];

    cell.accessoryType = cell.accessoryType == UITableViewCellAccessoryNone ? UITableViewCellAccessoryCheckmark : UITableViewCellAccessoryNone;

    [cell setSelected:NO animated:YES];
}

关于iphone - 在ABPeoplePickerNavigationController上的deselectRowAtIndexPath,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1314653/

10-09 08:27