1

我正在编写一个基于 UIViewController 的应用程序。它没有导航栏。我的应用程序适用于地址簿。现在我使用两件事。

第一个(选择一个人):

{
    ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init];
    picker.peoplePickerDelegate = self;
    [self presentModalViewController:picker animated:YES];
}

第二个(选择手机):

{
    ABPersonViewController *picker = [[[ABPersonViewController alloc] init] autorelease];
    picker.personViewDelegate = self;
    picker.displayedPerson = person;
    picker.displayedProperties = [NSArray arrayWithObjects: [NSNumber numberWithInt:kABPersonPhoneProperty], nil];
    [self presentModalViewController:picker animated:YES];
}

它们在不同的函数中被调用。

在显示选择器的第一种情况下,它有一个带有一些按钮的导航栏:取消等。

在第二种情况下,另一个选择器没有导航栏。因此,如果我选择电话,那么它可以工作,但如果我想返回而不做选择 - 我没有“返回”或“取消”按钮。

在第二种情况下如何添加导航栏?

我尝试添加另一个导航控制器和视图控制器,如下所述

如何正确使用 ABPersonViewController 和 ABPeoplePickerNavigationController 来查看联系信息?

这会显示导航栏,但我的应用程序在此之后崩溃。

4

1 回答 1

2

ABPeoplePickerNavigationController,顾名思义,是一个导航控制器,所以它有一个导航栏。ABPersonViewController只是一个视图控制器,所以它没有自己的导航栏。您可以自己将实例ABPersonViewController放入导航控制器并展示它,然后它将有一个导航栏,您可以添加任何您需要的按钮。

于 2013-07-17T18:47:32.163 回答