在Interface Builder中设置后,如何以编程方式修改UIBarButtonItem视图?

| 我已经在Interface Builder中创建了一个UIBarButton项,并将其链接到该类中的UIBarButton项属性。在Interface Builder中,其Style = Plain和Identifier = Custom,并且Title为空白。 在viewDidLoad方法的类文件中,我试图向此UIBarButtonItem属性添加自定义视图。 例如
UISegmentedControl *newButton = [[UISegmentedControl alloc] initWithItems:....];
newButton.momentary = YES;
newButton.segmentedControlStyle = UISegmentedControlStyleBar;
newButton.tintColor = [UIColor .....];

[self.myBarButtonItem setCustomView:newButton];
结果导致什么都没有显示。这是为什么? 我已经读过,如果我以编程方式创建UIBarButtonItem:
UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithCustomView:newButton];
然后将此BarButtonItem添加到工具栏-它将起作用。我的问题是我的工具栏上有很多东西,这个UIBarButton项必须在工具栏的FAR右边,如果我不能在界面生成器中直接链接到它,那么我就必须进行构建我所有的工具栏项目都以编程方式获得我需要的布局。 那么,当链接到IB中创建的UIBarButtonItem时,有没有办法使用customView做到这一点? 谢谢!     
已邀请:
要更改UIToolBar上的内容,请使用它的items属性。那应该回答您的问题:如何以编程方式替换IB中内置的UIToolBar项目 编辑: 我喜欢使用它们的方式是在每个uibarbuttonitem的视图控制器类中创建一堆IBOutlet。在Interface Builder中,我通常将第一个(默认)项作为工具栏子视图以及所有其他项放在工具栏上,其余的作为顶级项放在xib中(与连接到的视图相同级别)视图控制器的.view属性出口)。这样,我不必以编程方式创建它们。并且仍然将它们隐藏起来,以便以后将它们附加到uitolbar。 如果您使用这种方法,那么如果您将ivar IBOutlets(而不是@property IBOutlets)用作未连接到KVC编译器的xib中的所有顶级对象,请不要忘记在顶级IBOutlet上调用release参考。     

要回复问题请先登录注册