如何在iphone应用程序中打开编辑联系人窗口?

问题描述:

我在添加联系人信息从我的iPhone应用程序AddContact点击。我只想在同一个AddContact点击打开编辑联系人窗口,以便用户可以编辑或删除刚刚添加的联系人。我做了类似下面的东西..如何在iphone应用程序中打开编辑联系人窗口?

- (IBAction)AddContact 
{ 
ABAddressBookRef addressBook = ABAddressBookCreate(); 
ABRecordRef Showroom = ABPersonCreate(); 

//adding contact name as showroom name 

ABRecordSetValue(Showroom, kABPersonFirstNameProperty, ShowroomName.text , nil); 
    ABAddressBookAddRecord(addressBook, Showroom, nil); 
ABAddressBookSave(addressBook, nil); 
// Fetch the address book 
//ABAddressBookRef addressBook = ABAddressBookCreate(); 
// Search for the person named "Appleseed" in the address book 

    //ABRecordRef Showroom = (ABRecordRef)[Showroom objectAtIndex:0]; 
    ABPersonViewController *picker = [[[ABPersonViewController alloc] init] autorelease]; 
    picker.personViewDelegate = self; 
    picker.displayedPerson = Showroom; 
    // Allow users to edit the person’s information 
    picker.allowsEditing = YES; 
[self.navigationController pushViewController:picker animated:YES]; 
} 

这是我的地图应用程序。在启动时,我可以获得有联系人的陈列室结果。我可以通过编辑联系人窗口将其添加到iPHone联系人。但是当我打开其他控制器将用户选择的字符串地址传递给地图控制器以搜索展厅位置时。上面的代码不起作用。我的意思是它只添加联系人,但我没有得到编辑联系人窗口。

编辑: 可能是关于导航控制器栏,因此,请检查下面的代码也

- (void)viewWillAppear:(BOOL)animated 
    { 
    [self.navigationController setNavigationBarHidden:YES animated:animated]; 
    } 
    - (void)viewDidLoad { 

[self.navigationController setNavigationBarHidden:NO ]; 
self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:25.0/255.0f green:25.0/255.0f blue:25.0/255.0f alpha:1.0f]; 
    } 
- (void)viewWillDisappear:(BOOL)animated 
{ 
[self.navigationController setNavigationBarHidden:NO animated:animated]; 
} 
+0

你能重新解释你的问题吗? – Sarah 2011-12-20 12:49:32

+0

这是我的地图应用程序。在启动时,我可以获得有联系人的陈列室结果。我可以通过编辑联系人窗口将其添加到iPHone联系人。但是当我打开其他控制器将用户选择的字符串地址传递给地图控制器以搜索展厅位置时。上面的代码不起作用。我的意思是它只添加了联系人,但我没有得到编辑联系窗口 – 2011-12-20 13:20:37

+0

这可能是由于我在ViewWillAppear中隐藏导航控制器并将其隐藏到ViewwillDisAppear中。我不想要导航控制器栏,但我想回到我的应用程序 – 2011-12-20 13:27:10

我希望这个代码是你的作品我实现了代码,并在我的应用程序这一问题的工作很好,谢谢你

contecviewcontroller.h 
@interface DetailsViewController : UIViewController 
DocumentNavController *coffeeObj; 
editViewController *evController; 
int currentindex; 
} 

@property (nonatomic, retain) DocumentNavController *coffeeObj; 
@property (readwrite, assign) int currentindex;  
@end 

contecviewcontroller.m

- (void)viewDidLoad { 
    [super viewDidLoad]; 
//self.navigationController.toolbar.tintColor = [UIColor darkGrayColor]; 
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] 
              initWithBarButtonSystemItem:UIBarButtonSystemItemEdit 
              target:self action:@selector(goToEdit)]autorelease]; 
} 


-(void)goToEdit{ 

if(evController == nil) 
    evController = [[editViewController alloc]initWithNibName:@"editViewController" bundle:nil]; 
evernoteAppDelegate *appdelegete = (evernoteAppDelegate *)[[UIApplication sharedApplication]delegate]; 
coffeeObj = [appdelegete.noteArray objectAtIndex:currentindex]; 

evController.Editcurrentindex = currentindex; 
evController.docedObj = coffeeObj; 
[self.navigationController pushViewController:evController animated:YES]; 
}