2011-09-07 4 views
0

나는 UINavigation 바의 색깔을내비게이션 컨트롤러의 원래 색 복원

 self.navigationController.navigationBar.tintColor = [UIColor redColor]; 

에 의해 빨간색으로 바꿀 것입니다. 그러나 몇 초 후에 그것을 UINavigation bar의 기본 색상으로 복원하고 싶습니다. 도와주세요

+0

NSTimer를 사용하여 몇 초 후에 색상을 변경하십시오. – booleanBoy

답변

4

문제를 단순화하는 경우 실례지만, 기본 색상을 변수에 저장하고 필요할 때 다시 설정할 수 있습니다.

performSelector 호출을 사용하여 색상 변경을 지연시킬 수 있습니다.

//save the default color into a previously declared UIColor variable 
defaultColor = self.navigationController.navigationBar.tintColor; 

//set the new color 
self.navigationController.navigationBar.tintColor = [UIColor redColor]; 

//set the restore method to fire in 3 seconds 
[self performSelector:@selector(restoreNavColor) withObject:nil afterDelay:3.0]; 

어딘가에 클래스;

- (void)restoreNavColor { 

    self.navigationController.navigationBar.tintColor = defaultColor; 

} 

이전에 탐색 표시 줄의 기본 색상을 수정했는지 여부에 관계없이이 기능이 작동하므로 요구 사항에 맞아야합니다.

1

색상을 이와 같이 nil로 설정하십시오. 아마도 도움이 될 것입니다.

self.navigationController.navigationBar.tintColor = nil; 
2

당신은

이 중 하나를 사용할 수 있습니다;

self.navigationController.navigationBar.tintColor = nil; 
self.navigationController.navigationBar.tintColor = [UIColor clearColor]; 

감사합니다,

사티

1

를 사용하여 몇 초 후에 메소드를 호출하는 코드 ...

NSTimer * 타이머 = [NSTimer scheduledTimerWithTimeInterval : (1.0) 대상 : 자기 selector : @selector (changeColor) userInfo : nil repeats : YES];

[timer fire]; 

changeColor 메서드는 색상을 기본값으로 변경 한 다음 타이머를 무효화합니다.

+0

안녕하세요, 저는 그가 색상을 기본값으로 변경하는 방법에 대해 질문하고 있다고 생각합니다. – Satya

+0

그래 ....하지만 그는 "몇 초 후에"언급했다. tatz 왜 NSTimer를 사용하여 코드를 썼는가? – booleanBoy

관련 문제