2013-03-05 132 views
9

我继承ABPeoplePickerNavigationController,我想知道怎么躲右工具栏项目“Cancel”?的ABPeoplePickerNavigationController隐藏取消按钮

我一直在寻找,但我无法找到合适的解决方案。

谢谢!

+0

你为什么要躲呢..? – aBilal17 2013-03-05 13:43:34

+0

您是否尝试过'peoplePicker.topViewController.navigationItem.leftBarButtonItem = nil;'? – jjv360 2013-03-05 13:46:50

+0

@ jjv360谢谢,但它不起作用,rightBarButtonItem仍然可见 – jkigel 2013-03-05 13:58:14

回答

14

使用<UINavigationControllerDelegate>

ABPeoplePickerNavigationController alloc它代表自我。

peoplePicker.delegate = self; 

我们需要重写的UINavigationController的委托方法。

//当导航控制器通过按下,弹出或设置视图控制器堆栈显示新的顶视图控制器时调用。

- (void)navigationController:(UINavigationController*)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated 
{ 
    if([navigationController isKindOfClass:[ABPeoplePickerNavigationController class]]) 
     navigationController.topViewController.navigationItem.rightBarButtonItem = nil; 
} 
+0

如果可以的话,我要实现numberOfRowsInSection另一个问题,我怎么能返回的行数每节?用于'UITableView'的 – jkigel 2013-03-08 07:23:18

+0

'numberOfRowsInSection'? – 2013-03-08 07:30:16

+0

是的,我访问ABPeoplePickerNavigationController的tableView并将其dataSource设置为self,但我需要实现numberOfRowsInSection: – jkigel 2013-03-08 07:34:52