4
  1. 我正在尝试将分段控件添加到下面的 UIToolbar 中,但是当我尝试在 Storyboard 中将其拖动时,它会替换我的表格视图。
  2. 另外,当我尝试将 UIBarButton 添加到我的工具栏时,它会将我的原型单元格向下推......我的视图层次结构是否错误?
  3. 无论如何,当我添加 UIBarButton 项目时,在模拟器中,工具栏不是我在导航控制检查器中设置的黑色透明。那是怎么回事?

谢谢!

在此处输入图像描述 在此处输入图像描述

4

4 回答 4

7

要使用界面生成器在工具栏中创建分段控制元素,可以使用以下提示

1)在导航控制器中创建分段控制栏按钮项:

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

2) 将Bar Button Item拖动到 Navigation Item

将条形按钮项向上拖动到导航项

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

产生的结构

4)现在您可以选择分段控件来设置其属性

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

于 2013-04-08T20:20:14.420 回答
3

1 - 以编程方式进行。您需要先为 UIToolbar 分配一个框架,然后您可以在其中添加元素(segmentedControl)。我建议尽管使用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 样式设置为黑色。
使用self.navigationController.navigationBar.style = UIBarStyleBlack;,或者在 IB 中选择按钮并从 Inspector 中将 Tint 或 Style 设置为您想要的任何内容。

还要检查这个问题

于 2012-06-17T16:57:28.463 回答
1

我想这里的某个地方有一个导航视图控制器。他们有自己的工具栏,但它是隐藏的和空的。您看到的工具栏只是一个工具栏的模拟,目的是让您编辑 UI。

因此,要使用情节提要执行此操作,请不要将分段控件添加到模拟工具栏,创建一个新工具栏并将其添加到控制器中可用的视图树中(作为表视图的同级)并创建一个 IBOutlet 以引用它。然后在您的 viewDidLoad 方法中,将工具栏中的项目分配给视图控制器已经创建的工具栏。

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

@property (nonatomic, retain) IBOutlet UIToolbar toolbar;

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

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

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

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

当然,假设你想隐藏它。

于 2012-06-17T16:42:40.623 回答
1

我通过将 UISegmentedController 放在 Bar Button Item 中来做到这一点。

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

将一个条形按钮拖入 ViewController 屏幕上的工具栏,然后将一个 UISegmentedController 拖入其中(将按钮的大小调整为屏幕的整个宽度)

要将其全部连接起来,从 UISegmentedController 按住 ctrl 并拖动到相应的 .h 文件,从“引用插座”拖动到黄色视图控制器图标(使用相同的变量名),然后从“ValueChanged”拖动到黄色图标(选择要在新选择上调用的控制器上的方法)。

这一切似乎都按预期工作。(如果你不能在控制器上选择一个段来设置一个初始值,你没有按照上面的描述连接参考插座。这让我难了一会儿。)

于 2014-05-14T14:57:02.760 回答