0

をタップすると、ShowWebsiteButtonMainViewControllerのWebサイトが表示されWebViewControllerます。をタップするとCloseWebViewButtonWebViewControllerが閉じWebViewControllerて、MainViewControllerもう一度表示されます。注:正常にMainViewController開き、WebViewControllerWebサイトが読み込まれますが、に戻ることができませんMainViewController

MainViewController.h

@interface MainViewController : UIViewController <UIWebViewDelegate>
@property (strong, nonatomic) WebViewController *webViewController;

MainViewController.m

   - (IBAction)showWebsiteButton:(id)sender {

        NSString *fullURL = @"http://www.apple.com"

        self.webViewController.delegate = self;

        self.webViewController.websiteName = fullURL;

        self.webViewController.serviceName = @"Apple";

        [self.view addSubview:self.webViewController.view];
    }


- (void)webViewDidFinishLoad:(UIWebView *)webView
{
             [self dismissModalViewControllerAnimated:YES];
}

WebViewController.h

@property id <UIWebViewDelegate>delegate;

WebViewController.m

- (IBAction)closeBtnTapped:(id)sender {

   [self.delegate webViewDidFinishLoad:self.webView];
}
4

4 に答える 4

0

一つはっきりさせておきます。ashokbabuyが正しいので。コードでpresentModalViewControllerを使用する場合は常に、現在のコントローラーで提示しているViewcontrollerを覚えておいてください。提示されたコントローラーで閉じることをお勧めします。

つまり、MainControllerでWebViewcontrollerを表示している場合です。WebViewControllerclosebuttontapイベントでそれを閉じることをお勧めします。

したがって、次のような単純なコードになります

[self dismissModalViewControllerAnimated:YES];
于 2012-08-14T09:56:29.843 に答える
0

コードでpresentModalViewControllerを使用していません。webViewをサブビューとして追加しているだけです。

于 2012-08-14T09:36:11.843 に答える
0

のインスタンスにをUIWebViewDelegate割り当てます。そのため、デリゲートメソッドをリッスンしていません。WebViewControllerWebViewControllerMainViewControllerUIWebView

ただし、メソッドを提示WebViewControllerしていません。presentModalViewController

closeBtnTappedメソッドを呼び出してdismissModalViewControllerに送信するだけですself

于 2012-08-14T09:39:35.457 に答える
0

[self.view addSubview:self.webViewController.view]; 使用する代わりに[self presentModalViewCOntroller:webViewController animated:yes];

その後、dismissModalViewControllerAnimated動作します。

于 2012-08-14T09:52:42.103 に答える