誇大其詞,不要去碰使用方法:
[picker setAllowsCancel:NO];
它是蘋果的私有的API(非公開),他們會拒絕你的應用程序。
ABPeoplePickerNavigationController *tempABPNC = [[ABPeoplePickerNavigationController alloc] init];
tempABPNC.peoplePickerDelegate = self;
tempABPNC.delegate = self;
[self presentModalViewController:tempABPNC animated:YES];
[tempABPNC release];
您必須添加 「tempABPNC.delegate =自我;」 再執行UINavigationControllerDelegate方法:
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated{
viewController.title = @"選擇聯繫人";
tinlnTempVC = viewController;
viewController.navigationItem.leftBarButtonItem = nil;
UIViewController *tempABVC = [navigationController.viewControllers lastObject];
tempABVC.title = @"選擇聯繫人";
if([viewController.view.subviews count]==0){ //if user disable app open contact,you can create your own view,
UIView *tempV=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 320, IS_IPHONE5 ? 504 : 416)];
...
...
viewController.view = tempV;
[tempV release];
}}
在這個視圖 - 控制,子類的ABPeoplePickerNavigationController,所以我們可以用我們自己的按鈕替換navigationleft,右,backitem
static UIViewController *tinlnTempVC;
@implementation ABPeoplePickerNavigationController (tinlnCustom)
- (void)viewWillLayoutSubviews{
if ([[[UIDevice currentDevice] systemVersion] floatValue] < 5.0)
return;
UIButton *dismisBtn = [UIButton DIYNavigationBarItemBtnWithTitle:@"返 回" NC:tinlnTempVC.navigationItem];
[dismisBtn addTarget:self action:@selector(backToPayPhone) forControlEvents:UIControlEventTouchUpInside];}
- (void)backToPayPhone{
[self dismissModalViewControllerAnimated:YES];}
@end
的希望幫助你,咆哮,這種方法的iOS 5.0-6.1運行完美,在iOS的4.3-5.0的backitem水溼在第t更換ime show。