如何使用Storyboard将UISegmentedControl添加到我的UIToolbar?

  1. 我试图添加一个分段控制到我的UIToolbar下面,但是当我尝试在故事板中拖动它时,它将replace我的表视图。
  2. 另外,当我尝试添加UIBarButton到我的工具栏时,它将我的原型单元格拉下来…我的视图层次结构是否错误?
  3. 当我添加一个UIBarButton项目时,在模拟器中,工具栏并不是我在导航控制检查器中设置的黑色透明。 那是怎么回事?

谢谢!

在这里输入图像说明在这里输入图像说明

1 – 以编程方式进行。 你需要先为你的UIToolbar分配一个框架,然后你可以在其中添加元素(segmentedControl)。 我build议尽pipe使用UIBarButtonItems ,基本上是相同的。

要坚持到底部,试着这样做:

 #define SCREEN_FRAME [[UIScreen mainScreen] applicationFrame] CGRect frame = CGRectMake(0, [[UIScreen mainScreen] bounds].size.height - 44, [[UIScreen mainScreen] bounds].size.width, 44); UIToolbar *toolBar = [[UIToolbar alloc]initWithFrame:frame]; toolBar.frame = CGRectMake(0,self.view.frame.size.height-toolBar.frame.size.height,SCREEN_FRAME.size.width,toolBar.frame.size.height); //Setting up the items UIBarButtonItem *first = [[[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"image.png"] style:UIBarButtonItemStylePlain target:self action:@selector(yourAction:)] autorelease]; UIBarButtonItem *second = [[[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"image.png"] style:UIBarButtonItemStylePlain target:self action:@selector(yourAction:)] autorelease]; //Creating an array with the items NSArray *items = [NSArray arrayWithObjects:first,second, nil]; //Assigning the array to the toolBar [toolBar setItems: items]; 

那么你可以用它来设定它的风格

 mytoolbar.barStyle = UIBarStyleBlack; 

2 – 同上,框架。

3 – 您需要将navigationController样式设置为Black。
使用self.navigationController.navigationBar.style = UIBarStyleBlack ; ,或者在IB中selectbutton,从Inspector将Tint或Style设置为任何你想要的。

也检查这个问题

要使用“ 接口”构build器在工具栏中创build分段控制元素,可以使用以下提示

1)在导航控制器中创build分段控制栏button项目

在导航控制器中创建分段的控制栏按钮项目

2)将栏button项目拖到导航项目

将栏按钮项目拖动到导航项目

3)然后你应该得到以下结构

由此产生的结构

4)现在你可以selectSegmented Control来设置它的属性

选择分段控件来设置其属性

我认为这里有一个导航视图控制器。 他们有自己的工具栏,但它是隐藏的和空的。 您所看到的工具栏只是为了让您编辑UI而对工具栏进行的模拟。

所以要使用storyboard来做到这一点,不要将分割后的控件添加到模拟的工具栏上,创build一个新的工具栏并将其添加到控制器中可用的视图树中(作为表视图的同级),并创build一个IBOutlet以供引用它。 然后在viewDidLoad方法中,将工具栏中的项目分配给已由视图控制器创build的工具栏。

在这个例子中,我在我的视图控制器上创build了一个名为(巧妙)工具栏的属性:

 @property (nonatomic, retain) IBOutlet UIToolbar toolbar; 

在我的视图控制器的实现中,我手动分配工具栏项目:

 -(void)viewDidAppear:(BOOL)animated { [self setToolbarItems:self.toolbar.items animated:NO]; [self.navigationController setToolbarHidden:NO animated:YES]; } 

当视图控制器被popup时,例如在调用视图控制器中,您将需要隐藏工具栏:

 -(void)viewWillAppear:(BOOL)animated { [self.navigationController setToolbarHidden:YES animated:YES]; } 

假设你想隐藏它,当然。

我通过将UISegmentedController放置在一个栏button项中。

将一个工具栏添加到UINavigationController窗口,然后在ViewController屏幕上启用此工具栏的显示。

将一个栏button拖动到ViewController屏幕上的工具栏上,然后将一个UISegmentedController拖动到该button中(将button的大小调整为屏幕的整个宽度)

要把它连接起来,从UISegmentedController拖动到相应的.h文件,从“referencing outlet”拖动到黄色视图控制器图标(使用相同的variables名),然后从“ValueChanged”拖动到黄色图标(在控制器上select要调用新select的方法)。

这一切似乎按预期工作。 (如果你不能在控制器上select一个段来设置一个初始值,那么你没有像上面描述的那样连接参考sockets,这让我很困难。)