UIWebView不会立即停止

Nit*_*ish 9 uiwebview uiviewcontroller ios

我已经尝试了所有这些(,,,)解决方案,但是当我从Web视图屏幕返回到之前的viewController后,它会冻结大约2秒钟(有时更多).viewWillAppear中没有任何内容会导致冻结.

这是viewWillDisappearweb视图控制器:

-(void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    [detailWebView stopLoading];
    detailWebView.delegate = nil;
    NSLog(@"viewWillDisappear called !!!");
}
Run Code Online (Sandbox Code Playgroud)

第一个viewController:

-(void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [self.navigationController.navigationBar setBarTintColor:[UIColor colorWithRed:41.0/255.0 green:151.0/255.0 blue:132.0/255.0 alpha:1.0]];
    UIImage *imagePlus = [[UIImage imageNamed:@"create.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    buttonCreate = [UIButton buttonWithType:UIButtonTypeCustom];
    [buttonCreate setImage:imagePlus forState:UIControlStateNormal];
    [buttonCreate addTarget:self action:@selector(createActivity:) forControlEvents:UIControlEventTouchUpInside];
    buttonCreate.frame = CGRectMake(self.view.frame.size.width - 40, 10, 16, 16);
    [self.navigationController.navigationBar addSubview:buttonCreate];
    UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"back", nil) style:UIBarButtonItemStylePlain target:nil action:nil];
    [backButton setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor blackColor]} forState:UIControlStateNormal];
    self.navigationItem.backBarButtonItem = backButton;
    [self.navigationController.navigationBar setTintColor:[UIColor blackColor]];
}
Run Code Online (Sandbox Code Playgroud)

更新:我刚刚确认,如果我让webView完全加载然后转到之前的viewController,则没有观察到冻结.

Mru*_*nal 3

试试这个viewWillDisappear

-(void)viewWillDisappear:(BOOL)animated {  
  [detailWebView setDelegate:nil];
  [detailWebView loadRequest: [NSURLRequest requestWithURL: [NSURL URLWithString:@""]]];
  [detailWebView stopLoading];
  [super viewWillDisappear:animated];
}
Run Code Online (Sandbox Code Playgroud)