簡體   English   中英

在ABPeoplePickerNavigationController上取消選擇RowAtIndexPath

[英]deselectRowAtIndexPath on an ABPeoplePickerNavigationController

我在我的應用程序中顯示了一個ABPeoplePickerNavigationController作為選項卡。 用戶點擊名稱,然后點擊電子郵件地址,然后我使用電子郵件地址執行某些操作。

之后,我希望他們選擇的人和財產淡出(不突出顯示)。

在普通表中,我將調用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];
}

修改robby valles的答案,這是我取消選擇ABPeoplePickerNavigationController的tableview的ABPeoplePickerNavigationController

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;

    [tableView deselectRowAtIndexPath:[tableView indexPathForSelectedRow] animated:YES];
}

希望這可以幫助。

在沒有動畫的情況下關閉peoplepicker,然后在沒有動畫的情況下再次呈現它。 看起來不錯。

- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person{

    [self dismissModalViewControllerAnimated:NO];

    [self presentModalViewController:peoplePicker animated:NO];
        return NO;
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM