2012-07-05 8 views
0

내 앱을 통해 두 번 나타나는 탐색 var의 모양을 사용자 정의하려고합니다 (FYI : 스토리 보드를 사용 중입니다). "스레드 1 : 신호 SIGABRT"라며 main.m 파일에iOS SDK에서 UINavigationBar의 모양을 사용자 정의 할 수 없습니다.

return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 

: 어떤 이유로, 목의 응용 프로그램은 그것은 라인에 걸리면 (작동하지 않습니다.

을 내가 쓴 코드는 이 :!

UIImage * TabBarBG = [UIImage imageNamed:@"TabBarBG.png"]; 
[[UITabBar appearance] setBackgroundImage:TabBarBG]; 
[[UINavigationBar appearance] setBackgroundImage:TabBarBG]; 

탭 표시 줄의 사용자 정의는 방식으로 완벽하게 작동, 나는 네비게이션 바에 대해 다른 그림으로 그것을 시도했다, 그러나이 아니 여기에 단순 위해서

위의 코드입니다appDelegate 클래스의 "customizeInterface"라는 메서드에서 발견되며 동일한 클래스 (appDelegate)의 didFinishLaunchingWithOptions 메서드에서 호출됩니다.

왜 그런 일이 생길 수 있으며 어떻게 작동시킬 수 있습니까?

의견을 보내 주시면 감사하겠습니다.

+0

그것은 "붙어하지 않습니다 ", 응용 프로그램이 비정상적으로 종료 될 때 UIApplicationMain이 반환하면 실행 루프가 중단됩니다. 로그 인쇄 란 무엇입니까? – CodaFi

+0

2012-07-05 18 : 37 : 41.324 SocialNow [797 : f803] - [_ UIAppearance setBackgroundImage :] : 인식 할 수없는 선택자가 인스턴스로 전송 됨 0x6d42930 2012-07-05 18 : 37 : 41.326 SocialNow [797 : f803] *** 때문에 캐치되지 않는 예외 'NSInvalidArgumentException'응용 프로그램 종료, 이유는 : - '[_ UIAppearance의 setBackgroundImage :] 알 수없는 선택 예를 0x6d42930로 전송'*** 먼저 던져 호출 스택 : (0x13c9022 0x155acd6 0x13cacbd 0x132fed0 0x132fcb2 0x2bea 0x2997 0x11386 0x12274 0x21183 0x21c38 0x15634 – byteSlayer

+0

0x12b3ef5 0x139d195 0x1301ff2 0x13008da 0x12ffd84 0x12ffc9b 0x11c65 0x13626 0x290d 0x2875) 예외를 던집니다. (lldb) – byteSlayer

답변

1

UINavigationBar의 모양 API는 setBackgroundImage:이라는 메서드를 지원하지 않습니다. 그러나 setBackgroundImage:forBarMetrics:이라는 메서드를 지원합니다. 그래서 시도 :

[[UINavigationBar appearance] setBackgroundImage:TabBarBG forBarMetrics:UIBarMetricsDefault]; 
0

을 또한, (그것이 당신의 새로운 배경 이미지와 충돌하는 경우) 여기 탐색 모음 제목과 그림자의 색상을 변경하는 방법은 다음과 같습니다

https://stackoverflow.com/a/11005059/215845

+1

유용한 정보를 제공해 주셔서 감사합니다! – byteSlayer

관련 문제