2010-11-22 56 views
8

我正在编程式地将UINavigationBar添加到UIView,现在需要为其添加UIBarButtonItem。我尝试使用以下命令:无法将UIBarButtonItem添加到独立的UINavigationBar

UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(dismissView)]; 
[header setItems:[NSArray arrayWithObjects:doneButton, nil] animated:NO]; 
[doneButton release]; 

我的应用程序崩溃,我觉得这是在控制台:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIBarButtonItem setNavigationBar:]: unrecognized selector sent to instance 0x4b75c00'

将不胜感激,如果有人可以请指出我在做什么错误这里。

谢谢。 瑞奇。

回答

16

UINavigationBar接受一个UINavigationItem对象数组,其中每个对象都包含有关给定级别导航层次结构的属性。您可能需要创建一个新的UINavigationItem,然后将其rightBarButtonItem属性设置为完成按钮。

+0

感谢堆! – 2010-11-22 06:03:14

+0

仍然适用于iOS 7,谢谢! – user3344977 2014-04-09 05:03:22

4

根据当前状态,您不太可能需要创建新的UINavigationItem。相反,如果您已经从包含视图的笔尖初始化了UINavigationBar,则可以将UINavigationItem添加到UINavigationBartopItem属性中。就像这样:

UIBarButtonItem *closeBtn = [[UIBarButtonItem alloc] initWithTitle:@"Close" 
                  style:UIBarButtonItemStyleBordered 
                  target:self 
                  action:@selector(closeBtnPressed)]; 
self.navigationBar.topItem.leftBarButtonItem = closeBtn; 
[closeBtn release]; 
相关问题