繁体   English   中英

iPhone:将分段控件添加到工具栏,而不是导航控制器中的按钮?

[英]iPhone: adding segmented control to toolbar instead of buttons within navigation controller?

我是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];

此代码适用于按钮。 但是我一生都无法找到如何添加分段控件而不是按钮的方法。 我已经尝试过在其中具有两个分段控件的数组,但是无法将数组添加到工具栏。

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

谢谢,戴夫

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

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

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

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];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM