2011-08-30 7 views
0

저는 다중보기를 연습하고 있지만 작은 문제가 있습니다. 나의 새로운 뷰가로드되는 경우iOS - 새보기를로드 한 후 이전보기를 제거하는 방법?

, 나는 여전히 이전 뷰를 볼 수 있습니다.

프리뷰 뷰 보이지 않게하는 방법 ??

여기 내 코드입니다 : - 여기

- (IBAction)changeView:(id)sender 
{ 
    RedClass *red = [[RedClass alloc] initWithNibName:@"RedClass" bundle:nil]; 
    self.redClass = red; 
    [red release]; 
    //[self.view removeFromSuperview]; 
    [self.view addSubview:redClass.view];   
} 

및 스크린 샷입니다 : -

enter image description here

을 내가 [self.view removeFromSuperview] 주석을 제거 할 때 다음 내 빨간색보기도로드 받고 있지 않습니다.

도움을 주시면 감사하겠습니다.

감사합니다.

답변

2

붉은 색의 색이 투명 할 수 있다고 생각합니다.

그래서 redclass 당신의 펜촉 파일에서 확인하시기 바랍니다. 또한 당신은 여기에 귀하의 첫 번째보기를 제거 할 수 없습니다 1.

해야합니다 귀하의 레드 뷰에 대한 알파를 확인합니다. 창이나 다른 컨트롤러에로드 될 수 있기 때문입니다. 따라서 view1에 view2를 추가하고 view1을 제거하면 view2에 이미 있으므로 view2는 자동으로 제거됩니다. 그래서 당신은 내가보다는 제거 보이지 않는 이전 뷰를 만들 수있는 방법이 [self.view removeFromSuperview];

+0

쓸 수 없습니다? 왜냐하면 투명한 색이 문제라면 사람들이 투명한 색을 응용 프로그램에서 사용할 수 있기 때문에 몇 가지 해결책이 있어야하기 때문입니다. – Varundroid

+0

은 투명 색상을 사용 하였습니까? self.view.alpha = 0과 red.view.alpha - 1을 만들고 test, i 모르겠지만 한 번 확인해보십시오. – PJR

+0

아니요, 투명 색상을 사용하지 않았지만 더 밝은 빨간색을 사용했습니다. view.alpha가 작동하지 않습니다. 내 견해가 완전 해졌다. 그러나 만약 내가 푸른 색이나 녹색으로 색을 바꾼다면 나의 이전의 시각은 보이지 않습니다. 이게 뭐야? 왜 밝은 빨간색이 투명 빨간색으로 작동하고 있습니까? – Varundroid

1

뷰 변수를 .h 파일로 선언 할 수 있습니다. viewDidLoad에 할당하고 거기에 공개하지 마십시오. 사용할 때마다 [self.view addSubview:red];을 삭제하고 언제든지 제거 할 수 있습니다. [red removeFromSuperview];

1

[self.view removeFromSuperview]은 표시되는 뷰를 제거합니다. 이전에로드 된 뷰에 대해 removefromsuperview를 호출하고 새 뷰에 대해 addsubview를 호출해야합니다.

관련 문제