导航控制器工具栏中的UIBarButton

时间:2015-04-21 19:28:42

标签: ios objective-c xcode

我正撞在墙上,认为这应该很简单,但我无法理解。

我有一个应用程序,具有相同Navigataion Controller类的多个实例。是否可以将代码添加到所述导航控制器类(在这种情况下为工具栏的UIBarButtonItems),以便我在该类中执行的任何操作都将显示在该导航控制器中的任何位置?

我添加了以下代码,但工具栏上没有显示任何内容:

UIBarButtonItem *flexibleSpace =  [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];

UIBarButtonItem *add = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonItemSystemItemAdd target:self action:nil];

UIBarButtonItem *flexibleSpace =  [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];

NSArray *toolbarItems = [NSArray arrayWithObjects:flexibleSpace, add, flexibleSpace];

[toolBar setItems:toolbarItems animated:NO];

2 个答案:

答案 0 :(得分:1)

在致电-arrayWithObjects:时,您忘记使用nil终止列表。

NSArray *toolbarItems = [NSArray arrayWithObjects:flexibleSpace, add, flexibleSpace, nil];

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/#//apple_ref/occ/clm/NSArray/arrayWithObjects

答案 1 :(得分:0)

我最终要做的是修复它,是在工具栏中构建所有项目,然后从NavigationController类调用:

self.topViewController.toolbarItems = [NSArray arrayWithObjects: obj1, obj2, obj3, nil];