【发布时间】:2014-01-06 12:15:20
【问题描述】:
我已经创建了一个导航控制器类别并在视图中设置标题和左右栏按钮确实加载了这个导航控制器类(这个类的类别)。
- (void)viewDidAppear:(BOOL)animated
{
NSArray *ver = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];
if ([[ver objectAtIndex:0] intValue] >= 7) {
self.navigationBar.barTintColor = [UIColor colorWithRed:229.0f/255.0f green:114.0f/255.0f blue:89.0f/255.0f alpha:1.0f];
self.navigationBar.translucent = NO;
}else{
self.navigationBar.tintColor = [UIColor colorWithRed:229.0f/255.0f green:114.0f/255.0f blue:89.0f/255.0f alpha:1.0f];
}
UILabel *lblTitleView=[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 170, 44)];
[lblTitleView setTextColor:[UIColor whiteColor]];
[lblTitleView setFont:[UIFont boldSystemFontOfSize:17]];
[lblTitleView setText:[self SetnavigationTitle:self.navigationItem.title]];
[lblTitleView setTextAlignment:NSTextAlignmentCenter];
[lblTitleView setBackgroundColor:[UIColor clearColor]];
[self.navigationItem setTitleView:lblTitleView];
// UINavigationController*navCnt = [[UINavigationController alloc] init];
UIButton *btnLeft=[UIButton buttonWithType:UIButtonTypeCustom];
[btnLeft setFrame:CGRectMake(0, 5, 32, 32)];
[btnLeft setImage:[UIImage imageNamed:@"btn_back.png"] forState:UIControlStateNormal];
[btnLeft setImage:[UIImage imageNamed:@"btn_back.png"] forState:UIControlStateHighlighted];
[btnLeft setTitle:[NSString stringWithFormat:@"%@",[self SetleftbarbuttonTitle:self.navigationItem.leftBarButtonItem.title]] forState:UIControlStateNormal];
[btnLeft setTintColor:[UIColor grayColor]];
[btnLeft setBackgroundColor:[UIColor greenColor]];
[btnLeft setTag:101];
[btnLeft addTarget:self action:@selector(btnAction:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *leftBarButton=[[UIBarButtonItem alloc]initWithCustomView:btnLeft];
[self.navigationItem setLeftBarButtonItem:leftBarButton];
self.navigationItem.hidesBackButton=YES;
UIButton *btnRight=[UIButton buttonWithType:UIButtonTypeCustom];
[btnRight setFrame:CGRectMake(270, 5, 32, 32)];
[btnRight setImage:[UIImage imageNamed:@"btn_back.png"] forState:UIControlStateNormal];
[btnRight setImage:[UIImage imageNamed:@"btn_back.png"] forState:UIControlStateHighlighted];
[btnRight setTitle:[NSString stringWithFormat:@"%@",[self SetRightbarbuttonTitle:self.navigationItem.rightBarButtonItem.title]] forState:UIControlStateNormal];
[btnRight setTintColor:[UIColor clearColor]];
[btnRight setBackgroundColor:[UIColor greenColor]];
[btnRight setTag:102];
[btnRight addTarget:self action:@selector(btnAction:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *rightBarButton=[[UIBarButtonItem alloc]initWithCustomView:btnRight];
[self.navigationItem setRightBarButtonItem:rightBarButton];
[super viewDidAppear:animated];
}
当我只是从任何视图控制器传递标题时,它对每个视图控制器都可以正常工作,但是 现在我有了在导航控制器子类中设置左右栏按钮项的代码。
但现在在视图控制器上,我没有在该视图控制器上获得导航控制器的 uibar 按钮项。 提前致谢。
【问题讨论】: