Person ViewController没有导航栏

时间:2013-07-17 18:20:51

标签: ios navigationbar abpersonviewcontroller

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

第一个(选择一个人):

{
    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];
}

它们在不同的功能中被调用。

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

在第二种情况下,另一个选择器没有导航栏。所以,如果我选择手机然后它可以工作,但如果我想返回而不做出选择 - 我没有“后退”或“取消”按钮。

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

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

How to correctly use ABPersonViewController with ABPeoplePickerNavigationController to view Contact information?

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

1 个答案:

答案 0 :(得分:2)

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