2010-03-03 71 views
0

我已經完成了一個非常基本的「添加聯繫人」按鈕。我打電話「添加視圖」使用的代碼(通過鏈接的UIButton,即作品):iphone ABNewPersonViewController似乎沒有迴應委託

- (IBAction)showAddContact { 
NSLog(@"Hit showAddContact"); 

ABNewPersonViewController *newPersonViewController = [[ABNewPersonViewController alloc] init]; 

addContactNavController = [[UINavigationController alloc] initWithRootViewController:newPersonViewController]; 
[self presentModalViewController:addContactNavController animated:YES]; 
} 

,然後我也設置的代表反應:

- (void)newPersonViewController:(ABNewPersonViewController *)newPersonViewController didCompleteWithNewPerson:(ABRecordRef)person { 
    NSLog(@"Hit newPersonViewController"); 
//ABContact *contact = [ABContact contactWithRecord:person]; 
[self.navigationController popViewControllerAnimated:YES]; 
} 

在我的頭我已設置:

#import <UIKit/UIKit.h> 
#import <AddressBook/AddressBook.h> 
#import <AddressBookUI/AddressBookUI.h> 

@interface test2ViewController : UIViewController <ABNewPersonViewControllerDelegate> { 
UINavigationController* addContactNavController; 
} 

- (IBAction)showAddContact; 

@end 

我已經添加了框架地址簿和AddressBookUI。

按預期添加對話框,我可以編輯聯繫人,但我無法從視圖中刪除模態視圖控制器。

我甚至複製的問題,提供一個簡單的測試項目位置:link text

我缺少什麼?我敢打賭,這是一些極其簡單。 感謝@norskben

+0

只是一個小的語法問題,但是你想說的是你的'ABNewPersonViewController'實例不是*調用*委託。 –

+0

看起來像我發佈的最後一個代碼是一個導航控制器嘗試與模式視圖的一半的組合,昨天肯定是漫長的一天。看到我的評論下面的完整解決方案。 – oberbaum

回答

3

兩個問題:

你應該呈現它後releaseABNewPersonViewController

您呈現ABNewPersonViewControllerpresentModalViewController:模態對話框,但你從屏幕上刪除它,就好像它是一個UINavigationController推動與popViewControllerAnimated:。相反,你應該流行目前解僱。 (如果你不知道這意味着什麼,讀一點詮釋他的視圖控制器文檔)

即使你實現​​協議,你永遠不設置ABNewPersonViewControllerdelegate財產。

+1

感謝您的幫助。我正在嘗試.delegate = self,並沒有加載,但使用\t newPersonViewController.newPersonViewDelegate = self;它按預期工作!乾杯。對於所有未來具有相同問題的瀏覽器,您都有一個例子:http://norskben.posterous.com/iphoneos-addressbook-create-new-client-and-ge – oberbaum

相關問題