0

ユーザーが新しい UIViewController をビューに繰り返し追加できないように、ビューが既にビューに追加されているかどうかを確認したい。

    if (!self.fmovc)
    {
        self.fmovc = [[FMOVC alloc] initWithNibName: @"FMOVC" bundle:nil];
    }

    BOOL viewAlreadyDisplayed = NO;
    for (UIView * b in self.view.subviews)
    {
        if ([b isKindOfClass:[FMOVC class]])
        {
            viewAlreadyDisplayed = YES;
        }
    }

    if (!viewAlreadyDisplayed)
    {
        [self.view addSubview:self.fmovc.view];
    }

トリガーされないため、これは機能していません

viewAlreadyDisplayed = YES;

ビューが既に表示されているかどうかを確認する正しい方法は何ですか?

ありがとう、 -コード

4

2 に答える 2

0

UIView メンバー変数に thatView; と言うようにします。

if(!thatView) { thatView = [[UIView alloc] init]; [self.view addSubView:thatView]; }

スーパービューを解放したら、そのビューを解放して、そのビューを nil にします。

また

thatView を割り当てる前に、スーパービューに存在する場合は常にそのビューを確認して削除してください。

お役に立てれば !!!

于 2013-01-24T11:43:44.327 に答える
0

removeItFromSuperView を追加する前に...それはあなたの問題を解決するかもしれません

    [self.fmovc.view removeFromSuperview];
    [self.view addSubview:self.fmovc.view];
于 2013-01-24T11:41:03.240 に答える