0

点击 上ShowWebsiteButton显示MainViewController网站WebViewController。轻按一下CloseWebViewButton应该WebViewController会关闭WebViewController并再次显示给我MainViewController。注意:成功MainViewController打开WebViewController并加载网站,我只是无法返回MainViewController.

主视图控制器.h

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

主视图控制器.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

您没有在代码中使用 presentModalViewController。您只是将 webView 添加为子视图。

于 2012-08-14T09:36:11.843 回答
0

您将UIWebViewDelegatein分配WebViewController给 的实例WebViewController。因此,您MainViewController没有在听UIWebView委托方法。

但是,您并没有展示您WebViewControllerpresentModalViewController方法。

closeBtnTapped只是调用该dismissModalViewController方法并将其发送到self

于 2012-08-14T09:39:35.457 回答
0

让我澄清一件事。ashokbabuy 是对的。每当您在代码中使用 presentModalViewController 时,只需记住您在当前控制器中呈现的 Viewcontroller,在该呈现的控制器中关闭它是一个好习惯。

我的意思是如果你在 MainController 中展示 WebViewcontroller。在 WebViewController closebuttontap 事件中将其关闭是一种很好的做法。

所以这只是简单的代码如下

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

而不是[self.view addSubview:self.webViewController.view]; 使用[self presentModalViewCOntroller:webViewController animated:yes];

然后dismissModalViewControllerAnimated将起作用。

于 2012-08-14T09:52:42.103 回答