Iphone UIToolBar中的UISegmentedControl

Iphone UIToolBar中的UISegmentedControl,iphone,objective-c,xcode,uitoolbar,uisegmentedcontrol,Iphone,Objective C,Xcode,Uitoolbar,Uisegmentedcontrol,我知道如何从IB内部将UISegmentedControl添加到UIToolBar,但我正在尝试以编程方式执行相同的操作,因为我使用的是UISegmentedControl的自定义子类,它没有XIB 这是UISegmentedControl的代码: SVSegmentedControl *navSC = [[SVSegmentedControl alloc] initWithSectionTitles:[NSArray arrayWithObjects:@"List", @"Calendar",

我知道如何从IB内部将
UISegmentedControl
添加到
UIToolBar
,但我正在尝试以编程方式执行相同的操作,因为我使用的是
UISegmentedControl
的自定义子类,它没有XIB

这是
UISegmentedControl
的代码:

SVSegmentedControl *navSC = [[SVSegmentedControl alloc] initWithSectionTitles:[NSArray arrayWithObjects:@"List", @"Calendar", nil]];
navSC.delegate = self;
[self.view addSubview:navSC];
[navSC release];
navSC.center = CGPointMake(160, 70);

我想做一些类似于
[self.toolbar addSubview:navSC]
的事情,但没有显示任何内容。

您需要使用
UIToolbar
方法
–setItems:animated:
(详细信息见):


难道没有必要将
navSC
包装在
uibarbuttoneim
中吗?@zhang,我认为你首先将其包装在
uibarbuttoneim
中是正确的,因为现在,它正在使应用程序崩溃。你能告诉我怎么做吗?谢谢,这工作做得很好。但是你知道我怎么把按钮放在中间吗?现在它显示在工具栏的左侧。@Faisal:您可以在段的任一侧添加灵活的空格(
uiBarButtonSystemFlexibleSpace
)。好的,我添加了以下内容:`UIBarButtonItem*fixedItem=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace目标:nil操作:NULL]自动释放];,但如何将它和
segItem
一起添加到工具栏?请注意,您可以在IB中创建一个常规的UISegmentedControl,然后将其类更改为自定义子类。任何特定于您的子类的属性都必须在类似
awakeFromNib
的方法中设置。
UIBarButtonItem *segItem = [[UIBarButtonItem alloc] initWithCustomView:navSC];
UIBarButtonItem *spaceItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:NULL];
[toolBar setItems:[NSArray arrayWithObjects:spaceItem,segItem,spaceItem,nil] animated:YES];
[segItem release];
[spaceItem release];