2013-02-12 5 views
1

안녕하세요 UINavigation 바에서 SubView를 제거하려면 다음 코드를 사용하고 있습니다. 탐색 바에 label, button 및 imageVIew라는 하위 뷰가 있습니다.uinavigationbar에서 하위 뷰 제거

for (UIView *view in self.navigationController.navigationBar.subviews) { 


    [view removeFromSuperview]; 
} 

것은 내가 그것을 내가 배경 agin를 추가하고 파단을 제거한 후

 [self.navigationController.navigationBar setBackgroundImage:[UIImagem imageNamed:@"header-background"] forBarMetrics:UIBarMetricsDefault]; 

로 추가 된 내비게이션 바의 배경 이미지를 제거하고이를 실행하고, 그러나 추가 아니지만.

배경을 제거하지 않고 탐색 모음의 하위보기 만 제거 할 수있는 방법이 있습니까?

답변

4

빠른 옵션을 사용하면 파단에 아닌 값을 추가하는 것이 가정, 제거 및 예를 들어, 하위 뷰를 제거하기 전에 그것을 확인하려는 뷰의 tag 속성에 값을 추가하는 것입니다

for (UIView *view in self.navigationController.navigationBar.subviews) { 
    if (view.tag != 0) { 
     [view removeFromSuperview]; 
    } 
} 
1

이 시도 ,

for (UIView *view in self.navigationController.navigationBar.subviews) { 

if([view isKindOfClass:[UIImageView class]]) 
{ 
    //change your bar image 
} 
else 
{ 
[view removeFromSuperview]; 
} 
}