0

私はマルチビューを練習していますが、小さな問題があります。

新しいビューが読み込まれると、以前のビューを引き続き表示できます。

以前のビューを非表示にするにはどうすればよいですか?

これが私のコードです:-

- (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];        
}

そしてここにスクリーンショットがあります:-

ここに画像の説明を入力してください

コメントを外す[self.view removeFromSuperview]と、赤いビューが読み込まれません。

どんな助けでもいただければ幸いです。

ありがとう

4

3 に答える 3

2

あなたの赤いビューの色は透明かもしれないと思います。

だから、redclassのnibファイルでそれをチェックしてください。また、赤いビューのアルファを確認してください。1でなければなりません。

ここで最初のビューを削除することはできません。ウィンドウまたは他のコントローラでロードされる可能性があるためです。したがって、view 1にview2を追加し、view1を削除する場合、view2はすでにview1にあるため、自動的に削除されます。だからあなたは書くことができません [self.view removeFromSuperview];

于 2011-08-30T06:13:48.563 に答える
1

ビュー変数は.hファイルで宣言できます。割り当てて、viewDidLoadそこで解放しないでください。ビューの使用を追加したい[self.view addSubview:red];とき、および削除したいときはいつでも使用できます[red removeFromSuperview];

于 2011-08-30T05:58:42.400 に答える
1

[self.view removeFromSuperview]表示されているuiviewを削除します。したがって、以前にロードされたビューに対してはremovefromsuperviewを呼び出し、新しいビューに対してはaddsubviewを呼び出す必要があります。

于 2011-08-30T05:59:45.840 に答える