7

我是 iphone 编程新手,所以如果你能帮助我,我将不胜感激 - 我一直在网上,找不到答案。

我目前的设置是这样的

MainWindow.xib 中的导航控制器 > MainWindow.xib 中导航控制器中的视图调用 RootViewController.xib > RootViewController.xib 包含单个表视图。

然后我可以使用 RootViewController.m 中的以下代码加载到工具栏中

UIBarButtonItem *buttonOne = [[UIBarButtonItem alloc] initWithTitle:@"One" 
     style:UIBarButtonItemStyleBordered target:self action:@selector(buttonOnePushed)];
UIBarButtonItem *buttonTwo = [[UIBarButtonItem alloc] initWithTitle:@"Two" 
     style:UIBarButtonItemStyleBordered target:self action:@selector(buttonTwoPushed)]; 

NSArray *barArray = [NSArray arrayWithObjects: buttonOne, buttonTwo, nil];
[buttonOne release];
[buttonTwo release];

[self setToolbarItems:barArray animated:YES];

[self.navigationController setToolbarHidden:NO animated:YES];

此代码适用于按钮。但我终生无法找到如何添加分段控件而不是按钮。我尝试了一个包含两个分段控件的数组,但随后无法将该数组添加到工具栏。

如果有人可以让我知道一些代码,这些代码将以与我用来添加按钮的方式相同的方式添加分段控件,我将不胜感激。

谢谢,戴夫。

4

2 回答 2

20

对此的解决方案是 (1) 创建UISegmentedControl带有所有按钮等的 ,然后 (2)UIBarButtonItem使用initWithCustomView:(UIView *)view初始化程序创建一个并将分段控件作为变量提供给它。然后使用数组将 Bar Button Item 添加到工具栏,就像您在示例代码中所做的那样。

确保为分段控制器设置目标和操作,我建议将其样式设置为UISegmentedControlStyleBar. 它看起来就像地图应用程序底部的那个。希望这就是你要找的。

于 2009-11-14T02:37:46.543 回答
11

这是我的代码,它将分段控件添加到导航控制器的工具栏。:

NSArray *segItemsArray = [NSArray arrayWithObjects: @"Settings", @"Templates", @"Notes", nil];
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:segItemsArray];
segmentedControl.frame = CGRectMake(0, 0, 200, 30);
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
segmentedControl.selectedSegmentIndex = 2;
UIBarButtonItem *segmentedControlButtonItem = [[UIBarButtonItem alloc] initWithCustomView:(UIView *)segmentedControl];
UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
NSArray *barArray = [NSArray arrayWithObjects: flexibleSpace, segmentedControlButtonItem, flexibleSpace, nil];

[self setToolbarItems:barArray];
于 2011-11-15T00:26:38.350 回答