하나의 ViewController에서 UIBarButtonItem의 기본값 (이미 AppDelegate에서 선언 된)을 변경해야합니다.UIBarButtonItem의 배경을 변경할 수 없습니다
UIImage *navBarItemBackground = [UIImage imageNamed:@"navbar_button_green"];
[[UIBarButtonItem appearance] setBackgroundImage:navBarItemBackground
forState:UIControlStateNormal
style:UIBarButtonItemStyleBordered
barMetrics:UIBarMetricsDefault];
을 그리고 버튼의 기본 배경을 복원해야 할 때 - 내의 ViewController에서 구현 :
그래서, 내 AppDelegate에 나는이
self.navigationItem.rightBarButtonItem = nil;
UIBarButtonItem *rightBarItem = [[UIBarButtonItem alloc] initWithTitle:@"Сохранить" style:UIBarButtonItemStyleBordered target:self action:@selector(clickOnSend:)];
[rightBarItem setBackgroundImage:[UIImage imageNamed:@""] forState:UIControlStateNormal style:UIBarButtonItemStyleBordered barMetrics:UIBarMetricsDefault];
self.navigationItem.rightBarButtonItem = rightBarItem;
그러나 나는 그것의 생각 빈 파일을 이미지로 설정하는 것이 정확하지 않습니다. 이 동작을 구현하는 더 간단한 방법이 있습니까? 감사!
예, 코드의 두 번째 부분은 별도의 viewController에 배치됩니다. 하지만이 버튼은 기본 iOS6 배경으로두고 나머지 모양은 배경을 배경으로 변경해야합니다. – ShurupuS
@ ShurupuS 그러면 이미지 매개 변수에 nil 만 전달하면 제대로 작동합니다. – chancyWu
예 - 작동합니다.이 솔루션을 사용해 보았습니다. 코드가 조금 더 단순 해 보입니다. 감사! – ShurupuS