0

내 탐색 막대의 색조 색을 변경하려면 아래 코드의 마지막 두 줄을 사용하여 UIBarButtonItems가 기본 파란색 대신 검정색으로 표시되도록하십시오. 이 코드는 다른 컨트롤러에서는 작동하지만이 컨트롤러에서는 작동하지 않습니다.iOS7에서 UINavigationBar의 색조 색을 올바르게 설정하는 방법은 무엇입니까?

해당 컨트롤러로 이동 한 다음 해당 컨트롤러로 다시 이동하면 필요에 따라 UIBarButtonItems가 검정색이됩니다. 그러나 내가 처음으로 응용 프로그램을로드하고이보기가로드되면 파란색으로 표시됩니다.

UIBarButtonItem의 표시가 검정색이되도록 내비게이션 막대의 색조를 올바르게 변경하려면 어떻게해야합니까?

버튼에 설정된 실제 이미지는 검은 색입니다. viewWillAppear에서

코드 :

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 

    // Logo button 
    UIButton *logoButton = [[UIButton alloc] init ]; 
    [logoButton setImage:[UIImage imageNamed:@"va_logohme.png"] forState:UIControlStateNormal]; 
    [logoButton setAdjustsImageWhenHighlighted:NO];     ; 
    [logoButton setFrame:CGRectMake(0, 0, 320, 40)]; 
    [logoButton addTarget:self action:@selector(logoButtonTapped:) forControlEvents:UIControlEventTouchUpInside]; 
    [[self navigationItem] setTitleView:logoButton]; 

    // Additional UIBarButtonItem's 
    UIBarButtonItem *menuButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"hamburger_for_more.png"] style:UIBarButtonItemStylePlain target:self action:@selector(menuButtonTap)]; 

    UIBarButtonItem *searchButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"magnify_glass.png"] style:UIBarButtonItemStylePlain target:self action:@selector(searchButtonTapped)]; 
    [[self navigationItem] setLeftBarButtonItems:@[menuButton, searchButton]]; 
    UIBarButtonItem *shoppingCartButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"shopping_bag.png"] style:UIBarButtonItemStylePlain target:self action:@selector(shoppingCartButtonTapped)]; 
    UIBarButtonItem *addFavouriteButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"add_fav_heart.png"] style:UIBarButtonItemStylePlain target:self action:@selector(favouritesPageButtonTapped:)]; 

    NSMutableArray *buttons = [[NSMutableArray alloc] init]; 
    for (UIControl *btn in self.navigationController.navigationBar.subviews) { 
     if ([btn isKindOfClass:[UIControl class]]) { 
      [buttons addObject:btn]; 
     } 
    } 

    // Basket container 
    _bagContainer = [[UIView alloc] initWithFrame:CGRectMake(277, 16, 21, 21)]; 
    [[[self navigationController] navigationBar] addSubview:_bagContainer]; 

    UILabel *bagCount = [[UILabel alloc] init]; 
    [bagCount setText: [NSString stringWithFormat:@"%i", [Bag totalItems:[self managedObjectContext]]]]; 
    [bagCount setFont:[UIFont systemFontOfSize:14]]; 
    [bagCount sizeToFit]; 

    [_bagContainer addSubview:bagCount]; 

    bagCount.center = [_bagContainer convertPoint:_bagContainer.center fromView:_bagContainer.superview]; 
    [_bagContainer setUserInteractionEnabled:NO]; 

    [[self navigationItem] setRightBarButtonItems:@[shoppingCartButton, addFavouriteButton] animated: YES]; 

    // Change colour of nav bar tint 
    [[[self navigationController] navigationBar] setBarTintColor:[UIColor whiteColor]]; 
    [[[self navigationController] navigationBar] setTranslucent:NO]; 
} 
+0

누구에게도 'tintColor'를 수행하는 코드가 보이지 않습니다. – matt

답변

1

이미지 템플릿 이미지입니다 경우, 다음 원하는 색상으로 자신의tintColor을 설정합니다. 이미지가 일반 이미지 인 경우 이미지를 일반 이미지로 렌더링하여 색상이 아니라 템플릿 이미지로 표시되도록하십시오.

+0

버튼의 tintColour 속성 설정. 왜 내가 비슷한 코드를 가진 다른 컨트롤러에서 이것을 할 필요가 없는지 확신 할 수 없다. – LondonGuy