在UIBarButtonItem上添加UISegmentedControl

在导航栏中加上分段控件是很常用的做法,效果如下:

UISegmentedControl *segmentedControl=[[UISegmentedControl alloc] initWithFrame:CGRectMake(80.0f, 8.0f, 300.0f, 30.0f) ]; 
[segmentedControl insertSegmentWithTitle:@"最新上架" atIndex:0 animated:YES];
[segmentedControl insertSegmentWithTitle:@"热销商品" atIndex:1 animated:YES];
[segmentedControl insertSegmentWithTitle:@"促销商品" atIndex:2 animated:YES];
//[segmentedControl insertSegmentWithImage:[UIImageimageNamed:@"style12"] atIndex:0animated:YES];


segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
//segmentedControl.segmentedControlStyle = UISegmentedControlStyleBezeled;
segmentedControl.momentary = YES;
segmentedControl.multipleTouchEnabled=NO;
//segmentedControl.userInteractionEnabled=YES;
[segmentedControl addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged];
//segmentedControl.tintColor=[UIColor clearColor];

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

对应的方法:

-(void)segmentAction:(UISegmentedControl *)Segment{
NSInteger index = Segment.selectedSegmentIndex;

if (index == 0) {
//最新上架
NewestGoods *newestGoods = [[NewestGoods alloc] initWithNibName:@"NewestGoods" bundle:nil];
newestGoods.navigationItem.title = @"最新上架";
[self.navigationController pushViewController:newestGoods animated:YES];
}else if (index == 1) {
//热销商品
HotItems *hotItems = [[HotItems alloc] initWithNibName:@"HotItems" bundle:nil];
hotItems.navigationItem.title = @"热销商品";
[self.navigationController pushViewController:hotItems animated:YES];
}else {
//促销商品
PromotionsGoods *promotionsGoods = [[PromotionsGoods alloc] initWithNibName:@"PromotionsGoods" bundle:nil];
promotionsGoods.navigationItem.title = @"促销商品";
[self.navigationController pushViewController:promotionsGoods animated:YES];
}


}




原文地址:https://www.cnblogs.com/foxmin/p/2434459.html