2

iOS 7.0 이상.UIBarButtonItem 제목 텍스트는 항상 글로벌 색조입니다.

AppDelegate.m에서 전 세계 tintColor : self.window.tintColor = myGlobalTintColor;을 설정하고 있습니다. NSForegroundColorAttributeName[UIColor redColor],을에 설정되는 코드의 라인에도 불구하고

- (void)setEditing:(BOOL)editing animated:(BOOL)animate { 
    [super setEditing:editing animated:animate]; 
    if (editing) { // Start editing 
     self.deleteBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemTrash target:self action:@selector(deleteButtonPressed)]; 
     [self.deleteBarButtonItem setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: [UIColor redColor], NSForegroundColorAttributeName, nil] forState:UIControlStateNormal]; 
     self.navigationItem.rightBarButtonItems = @[self.deleteBarButtonItem]; 
    } 
} 

: 테이블 뷰 셀을 편집하는 동안 내가 탐색 줄에 빨간색 휴지통 버튼을 원하는 내 테이블 뷰 컨트롤러에서

,이이 나는 붉은 색을 결코 보지 못한다. UINavigationBar with always tinted UIBarButtonItem

내 코드를 통해 빗질했고 나는 '다른 곳이없는 확신 : 버튼이 .enabled = YES로 설정하면, 단순히 다른 모든 버튼처럼, 내 글로벌 색조의 컬러 볼 다른 것을 설정하면 myGlobalTintColor이됩니다. 이 UITableViewController이 스토리 보드에서 인스턴스화되었다는 점은 주목할 가치가 있습니다. AppDelegate.m의 줄을 주석으로 처리하면 모든 항목이 기본 파란색 tintColor으로 다시 전송되지만 삭제 버튼에는 여전히 붉은 색이 표시되지 않습니다.

+0

당신이 봤어 :

은 단순히 위의 코드를 대체하여이 문제를 해결? – mbm29414

+0

'setTitleTextAttributes :'대신'[self.deleteBarButtonItem setTintColor : [UIColor redColor]];를 시도 했습니까? –

+0

방금 ​​해봤습니다. 불행하게도. 'self.deleteBarButtonItem.tintColor'를 설정해도 아무 것도하지 않았습니다. –

답변

0

이 그것을하려면 tintColor의에 걸릴 내 UINavigationBar 모든 개체를 발생, 그것은 문제가 내가 타사 라이브러리, SDCAlertView을 사용하고 있었다이었다 밝혀, 나는 몇 가지 이유를 들어

[[SDCAlertView appearance] setTintColor:globalTintColor]; 

을 설정했다. 제목 텍스트 속성보다는 색조 색상을 설정

[[SDCAlertView appearance] setButtonTextColor:globalTintColor]; 
+1

iOS 7에서는'tintColor'와'UIAppearance'가 잘 어울리지 않는다는 점에 유의하십시오. –

+0

@ScottBerrevoets 감사합니다! 아마 그것이 내가 예기치 않은 행동을하는 이유입니다. 나는 어쨌든 지원되지 않는 무언가를하고 있었다. –

관련 문제