0

我正在尝试显示 iPhone 通讯录中的联系人。我获取联系人的姓名和图像。然后我将这些详细信息传递给详细信息视图。

现在的问题是当我推送详细视图时,动画非常缓慢且不稳定。仅当我获取具有图像的联系人详细信息时才会发生这种情况。当联系人详细信息不包含图像时,pushviewcontroller 动画效果非常好。

我还注意到这个问题只发生在 iPhone 4.0 中。当我在 iPhone 3gs 上测试时,它运行良好。所以我认为这可能是设备特定的问题。

我通过以下方式获取联系人姓名:

 ABAddressBookRef addressBook = ABAddressBookCreate();
ABRecordRef record=ABCFindPersonMatchingPhoneNumber(addressBook,
                                                    number, 0, 0);

if(record)
{
    NSString *name=(NSString *)ABRecordCopyCompositeName(record);
   NSLog(@"Contact Name %@",name);

}

我通过以下方式获取联系人图像:

     if (record && ABPersonHasImageData(record))
    {

        CFDataRef data;
        data = ABPersonCopyImageData(record);
        if (data)
        {
            NSLog(@"ImageFound");
            imageData=[[NSData alloc] initWithData:(NSData *)data];

        }
    }

然后我将 imageData 传递给详细信息视图

DetailView *detail=[[DetailView alloc] initWithNibName:@"DetailView" bundle:nil];
detail.imageData=imageData
[self.navigationController pushViewController:detail animated:YES];

我该如何改进呢?

4

1 回答 1

0

我知道这是一个旧线程,但以防万一有人在这里遇到相关问题:添加

[detail view];

在初始化之后和设置任何 @properties ( detail.imageData=imageData;) 之前 - 因为 segue 的出口尚未设置。

于 2014-03-13T18:13:39.510 回答