【问题标题】:iOS - dismissModalViewController not workingiOS-dismissModalViewController 不起作用
【发布时间】:2012-08-10 13:53:12
【问题描述】:

MainViewController 上点击ShowWebsiteButton 会显示WebViewController 上的网站。 在WebViewController 上点击CloseWebViewButton 应该关闭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];
}

【问题讨论】:

  • 获取 (void)webViewDidFinishLoad:(UIWebView *)webView 曾经调用过吗?

标签: iphone ios uiviewcontroller uiwebview uiwebviewdelegate


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    但是您没有使用presentModalViewController 方法呈现您的WebViewController

    closeBtnTapped 中只需调用dismissModalViewController 方法并将其发送给self

    【讨论】:

      【解决方案3】:

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

      那么dismissModalViewControllerAnimated 就可以了。

      【讨论】:

        【解决方案4】:

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

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

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

        [self dismissModalViewControllerAnimated:YES];
        

        【讨论】:

          猜你喜欢
          • 2011-12-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-02-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多