3

UIWebViewの上にモーダルビューを表示することは可能ですか? WebView をロードする UIViewController があります。次に、モーダルビューが WebView を一時的に覆うように、モーダルビューコントローラーを上にプッシュしたいと思います...

WebView は正常に動作しています。ビューコントローラーにロードする方法は次のとおりです。

- (void)loadView {

    // Initialize webview and add as a subview to LandscapeController's view
    myWebView = [[[UIWebView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]] autorelease];
    myWebView.scalesPageToFit = YES;
    myWebView.autoresizesSubviews = YES;
    myWebView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);  
    myWebView.delegate = self;
    self.view = myWebView; 
}

ただし、viewDidLoad 内からモーダル ビュー コントローラーを読み込もうとすると、モーダル ビューが表示されません。

- (void)viewDidLoad {

    [super viewDidLoad];

    // Edit dcftable.html with updated figures
    NSMutableString *updated_html = [self _updateHTML:@"dcftable"];

    // Load altered HTML file as an NSURL request
    [self.myWebView loadHTMLString:updated_html baseURL:nil];

    // If user hasn't paid for dcftable, then invoke the covering modal view
    if (some_condition) {

        LandscapeCoverController *landscapeCoverController = [[[LandscapeCoverController alloc] init] autorelease ];
        [self presentModalViewController:landscapeCoverController animated:YES];    
    }   


}

新しいモーダルビューを受け取るために UIWebView デリゲートで何かを行う必要があると思います...しかし、これに関する議論や例はどこにも見つかりません...再び、目的はモーダルを呼び出すことですWebView の上部を覆うビュー。

事前にご意見をお寄せいただきありがとうございます。

4

2 に答える 2

4

私はこの同じ問題に遭遇しました。presentModalViewController呼び出しを からviewDidLoadに移動すると、viewDidAppearうまくいきました。

于 2010-12-23T19:43:10.647 に答える
0

どちらでも動作しませんでしたがviewDidLoad、別の方法で動作するようになりました。これが私がしたことです:

- (void)viewDidLoad {
    ...

    if (some_condition) {
        [NSTimer scheduledTimerWithTimeInterval:0.2 target:self selector:@selector(showModal) userInfo:nil repeats:NO];
    } 
}

- (void)showModal {
    LandscapeCoverController *landscapeCoverController = [[[LandscapeCoverController alloc] init] autorelease ];
    [self presentModalViewController:landscapeCoverController animated:YES];    
}

基本的に、 で呼び出されていなければ機能しviewDidLoadます。理由を説明できればいいのですが、私自身も興味がありますが、これで少なくとも問題は解決するはずです。

お役に立てれば!

于 2010-12-23T08:46:50.250 に答える