2014-06-09 4 views
0

UINavigationController에서 불투명 한 UIViewController를 표시하려고합니다. 뷰가 애니메이션으로 처리되는 동안, 내가 원하는 방식으로 불투명합니다. 그러나 애니메이션이 끝나면 배경이 회색으로 바뀝니다. 이전 뷰가 UIViewController 일 때이 작업을했습니다. 이전보기로 UINavigationController를 사용했을 때이 문제가 발생하기 시작했습니다.iOS opaque UIViewController on UINavigationController

코드보기로 전환하기 :

UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:STORYBOARD_IPHONE bundle:nil]; 
UIViewController *viewController = [storyBoard instantiateViewControllerWithIdentifier:viewName]; 
[self presentViewController:viewController animated:YES completion:nil]; 

코드를 발표보기 불투명하게 :이 클래스가보기를 제시하고 있다는 사실과 함께 할 수있는 뭔가가 있다고 생각

self.view.backgroundColor = [[UIColor whiteColor] colorWithAlphaComponent:0.7]; 

을 UINavigationController가 아니라 UINavigationController 내의 UIViewController입니다. 그래서 self.navigationController presentViewController 사용하여 시도했지만 동일한 결과가 있어요.

백그라운드를 불투명하게 유지하려면 어떻게 수정해야합니까?

내장의 UIViewController와 이전은 UINavigationController는 :

enter image description here

은 애니메이션 동안처럼 보이는 무엇 : 그것은 애니메이션 후처럼 보이는 무엇

enter image description here

:

enter image description here

+0

배경색 코드를 작성하는 곳. viewdidload에 있습니까? 만약 그렇다면 viewwillappear에서 backgoundcolor를 설정하려고합니다. – KDeogharkar

+0

예, viewDidLoad에서 설정했습니다. viewWillAppear 및 viewDidAppear에서 설정하려고했습니다. 나는 같은 문제를 가지고있다. –

+0

보기를 알파 0.7로 설정하고 그것을 볼 수있는 이유가 궁금하십니까? 보기 뒤에 무엇이 있습니까? 아마도 검은 배경입니까? 70 %의 흰색이 당신의 회색을 유발할 수 있습니다. –

답변

0

여기보기는 내가 관심이있는 뷰 뒤에 앉아 내가 볼 정기적으로 사용하는 루틴이다 : 나는 세계적으로 액세스 할 수있는

// useful debugging method - send it a view and it will log all subviews 
// can be called from the debugger 
- (void) viewAllSubviews:(UIView *) topView Indent:(NSString *) indent { 
    for (UIView * theView in [topView subviews]){ 
     NSLog(@"%@%@", indent, theView); 
     if ([theView subviews] != nil) 
      [self viewAllSubviews:theView Indent: [NSString stringWithFormat:@"%@ ",indent]]; 
    } 
} 

나는 보통 어딘가에 넣어. 그것 같이 전화하십시오

[self viewAllSubviews:rootViewController.view Indent:@" "]; 

당신이보기에 뿌리를 둔보기 나무에 근거를 둔 전망 나무를 인쇄하고 수준에 따라 들여 쓰기하십시오. 관심 대상의 뒤에있는 것이 무엇인지 밝혀야하며 거기에있는 모든보기의 프레임 좌표를 확인할 수 있습니다.

이렇게하면 어떤 뷰가 뒤에 있는지 알 수 있습니다.

관련 문제