0

カスタム オーバーレイ UIView クラスを使用しています

#import "OverLayView.h"

@implementation OverLayView

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
       self->overLay  = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1024, 704)];
        self->overLay.backgroundColor = [UIColor colorWithWhite:0 alpha:.5];

    }
    return self;
}

-(void)removeOverLay{

    [self->overLay removeFromSuperview];
}

タップアクションでロードしています

   OverLayView *m_overLay = [[UIView alloc]initWithFrame:
                              CGRectMake(0,0,1004,768)]; 
    [m_overLay setBackgroundColor:[UIColor colorWithRed:0. green:0.39 blue:0.106 alpha:0.5]];
    [self.view addSubview:m_overLay];

    CGRect rect = CGRectMake(0, 0, 1024, 704);

    secondViewController = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:[NSBundle mainBundle]];
    [secondViewController.view setFrame:CGRectMake(300, 60, 430, 620)];
    [self.view addSubview:secondViewController.view];

タイプUIViewの式でオーバーレイビュー* _strong 'を初期化する互換性のないポインタータイプと競合しています。

ロードするときに、作成されたオーバーレイを削除する secondViewController から removeOVerLay を呼び出す必要があります

オーバーレイを削除する方法を教えてもらえますか

@前もって感謝します

4

2 に答える 2

0

アニメーション効果を与えることで、UIViewController のオーバーレイ ビューをカスタマイズできます。

overlay-another-uiviewリンクを参照してください。希望に満ちた希望

于 2012-08-24T12:23:00.007 に答える
0

NSNotification を使用して問題を解決してください。

于 2012-08-26T20:46:13.127 に答える