点击ShowWebsiteButton
上的MainViewController
会在WebViewController
上显示一个网站。
点按CloseWebViewButton
上的WebViewController
即可取消WebViewController
并再次向我显示MainViewController
。注意:MainViewController
成功打开WebViewController
并且网站已加载,我无法返回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];
}
答案 0 :(得分:0)
您没有在代码中使用presentModalViewController。您只是将webView添加为子视图。
答案 1 :(得分:0)
您将UIWebViewDelegate
中的WebViewController
分配给WebViewController
的实例。因此,MainViewController
没有收听UIWebView
委托方法。
但是,您没有使用WebViewController
方法展示presentModalViewController
。
在closeBtnTapped
中调用dismissModalViewController
方法并将其发送至self
答案 2 :(得分:0)
而不是[self.view addSubview:self.webViewController.view];
使用[self presentModalViewCOntroller:webViewController animated:yes];
然后dismissModalViewControllerAnimated
将起作用。
答案 3 :(得分:0)
让我说清楚一件事。因为ashokbabuy是对的。 无论何时在代码中使用presentModalViewController,只需记住您在当前控制器中呈现的Viewcontroller,这是一个很好的做法,可以在该呈现的控制器中使用。
我的意思是你在MainController中展示WebViewcontroller。在WebViewController closebuttontap事件中解除它是一个很好的做法。
所以它只是简单的代码如下
[self dismissModalViewControllerAnimated:YES];