2013-05-08 3 views
1

나는 UIAppearance로 조금 놀았으며 정상적으로 작동합니다. 현재 AppDelegate에서 모든 apperance 요소를 설정 중이지만 App이 이미 시작된 후에 사용자 정의를 수행해야합니다 (사용자가 로그인 한 후 Theming).UIAppearance가 AppDelegate 외부에서 작동합니까?

AppDelegate 외부에 외양을 넣을 수 있습니까? 물론 이미 시도했지만 효과가 없습니다. wohle App-UI를 다시로드해야합니까? 그렇다면 어떻게해야합니까?

감사합니다. 크리스

+1

뷰 객체가 생성 된 후에'UIAppearance'를 변경하면 영향을 미치지 않습니다. 이 객체를 다시로드하거나 다시 인스턴스화해야합니다. 나는 이것을 문서에서 발견 할 수 없었지만 이것이 사실 인 것처럼 보인다. –

답변

1

당신이 사용자 정의 어떤 UIControl 객체를 생성하기 전에 수행해야하기 때문에 당신은 AppDelegate에 내 모양 사용자 정의를해야보기를 만들 XIB를 사용하는 경우. 을 위해 : 당신은 계층 구조의 컨테이너 클래스의 인스턴스 내에 포함 된 클래스의 인스턴스, 또는 인스턴스의 모습을 사용자 정의하려면 appearanceWhenContainedIn

를 사용하여 다른보기 컨트롤러/용기를 사용자 정의 할 수 있습니다, +는 appearanceWhenContainedIn 사용 적절한 모양 프록시. 예를 들어

: 프로그래밍 방식으로 컨트롤을 생성하는 경우

[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil] setTintColor:myNavBarColor]; 
[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], [UIPopoverController class], nil] setTintColor:myPopoverNavBarColor]; 

사용의 ViewController 클래스

[[UIStepper appearanceWhenContainedIn:[MainViewController class], nil]setTintColor:[UIColor redColor]]; 
[[UIStepper appearanceWhenContainedIn:[DetailViewController class], nil]setTintColor:[UIColor greenColor]]; 

상관없이 사용자 정의없는 단지 제어

를 작성하기 전에3210