【问题标题】:How to add UISegmentControl in UINavigationItem ..?如何在 UINavigationItem 中添加 UISegmentControl ..?
【发布时间】:2011-10-14 13:54:08
【问题描述】:

如何在UINavigationItem 中添加UISegmentedControl? 我想创建一个带有段控制的UINavigationBar,添加导航栏的标题。

UISegmentedControl 有两个索引。

这是我所拥有的:

UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:[UIImage imageNamed:@"grid.png"],[UIImage imageNamed:@"list.png"],nil]];
    [segmentedControl addTarget:self action:@selector(segmentedAction) forControlEvents:UIControlEventValueChanged];
    segmentedControl.frame = CGRectMake(0, 0, 90, 40);
    segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
    segmentedControl.momentary = YES;
    [segmentedControl setTintColor:[UIColor clearColor]];

    UIBarButtonItem *segmentBarItem = [[UIBarButtonItem alloc] initWithCustomView:segmentedControl];    
    self.navigationItem.rightBarButtonItem = segmentBarItem;

我把它放在右边。所以,也想放在导航栏的中间。

这不起作用,如果我做错了什么,请告诉我。

谢谢

【问题讨论】:

标签: ios iphone objective-c uisegmentedcontrol


【解决方案1】:

你快到了,你只需要将分段控件添加到 UINavigationItem 并将其添加到 UINavigationBar:

// This code is used for a custom navigation bar

UINavigationItem* newItem = [[UINavigationItem alloc] initWithTitle:@""];
[newItem setTitleView:segmentedControl];

// Assuming you already have a navigation bar called "navigationBar"
[navigationBar setItems:[NSArray arrayWithObject:newItem] animated:NO];

// No memory leaks please...
[newItem release];

或者如果你想使用现有的控制器

// This is used for an existing navigation controller
[navigationController.navigationBar.topItem setTitleView:segmentedControl];
// or if you want to access through the root view controller of the nav controller
[rootController.navigationItem setTitleView:segmentedControl];

这应该将导航栏的中心视图设置为分段控件。

希望我能帮上忙!

编辑:如果您需要更多帮助,这些类的 Apple 文档非常详尽:

UINavigationItem

UINavigationBar

【讨论】:

  • 我的课程已经是导航基类。所以它给出了这样的错误“无法直接在控制器管理的 UINavigationBar 上调用 setItems:animated:”...
  • 我添加了代码来支持现有的导航控制器。让我知道它是如何工作的。
  • 查看此链接.. stackoverflow.com/questions/6828270/… NOW IT WORKS
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多