iphone ABNewPersonViewController似乎没有回应委托
我已经完成了一个非常基本的“添加联系人”按钮。我打电话“添加视图”使用的代码(通过链接的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
两个问题:
你应该呈现它后release
的ABNewPersonViewController
。
您呈现ABNewPersonViewController
与presentModalViewController:
模态对话框,但你从屏幕上删除它,就好像它是一个UINavigationController
推动与popViewControllerAnimated:
。相反,你应该推和流行或目前和解雇。 (如果你不知道这意味着什么,读一点诠释他的视图控制器文档)
即使你实现协议,你永远不设置ABNewPersonViewController
的delegate
财产。
感谢您的帮助。我正在尝试.delegate = self,并没有加载,但使用\t newPersonViewController.newPersonViewDelegate = self;它按预期工作!干杯。对于所有未来具有相同问题的浏览器,您都有一个例子:http://norskben.posterous.com/iphoneos-addressbook-create-new-client-and-ge – oberbaum
只是一个小的语法问题,但是你想说的是你的'ABNewPersonViewController'实例不是*调用*委托。 –
看起来像我发布的最后一个代码是一个导航控制器尝试与模式视图的一半的组合,昨天肯定是漫长的一天。看到我的评论下面的完整解决方案。 – oberbaum