如何在UISegmentedControl
中添加UINavigationItem
?
我想创建一个带有段控件的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;
我把它放在右侧。所以,也想放在导航栏的中间。
这不起作用如果我做错了请告诉我。
由于
答案 0 :(得分: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文档非常全面: