gpt4 book ai didi

ios - UIWebView两次启动-iOS

转载 作者:行者123 更新时间:2023-12-01 18:45:49 25 4
gpt4 key购买 nike

我正在使用下面的方法在ProgressView加载时添加UIWebView,并在完成后将其关闭。
问题是UIWebView被启动了两次,并且ProgressView也被启动了,所以当页面加载完成时,只关闭了一个ProgressView,而另一个则没有。

ViewController.h

#import <UIKit/UIKit.h>

@interface DirectionViewController : UIViewController <UIWebViewDelegate>
@property (weak, nonatomic) IBOutlet UIWebView *directionWebView;
@end

ViewController.m
@interface ViewController () 
@property UIColor *yellowColor;
@property MRProgressOverlayView *progressView;
@end

@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];

self.yellowColor =
[UIColor colorWithRed:244.0f/255.0f
green:208.0f/255.0f
blue:63.0f/255.0f
alpha:1.0f];
self.directionWebView.delegate = self;
NSString *urlMap = [NSString stringWithFormat:@"%@%f,%f&zoom=14", @"http://maps.google.com/maps?q=", self.coordLat, self.coordLong];
NSURL *url = [NSURL URLWithString:urlMap];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
[self.directionWebView loadRequest:urlRequest];
}

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSLog(@"WebView start loading...");
self.progressView = [MRProgressOverlayView new];
self.progressView.mode = MRProgressOverlayViewModeIndeterminateSmall;
[self.view.window addSubview:self.progressView];
[self.progressView setTintColor:self.yellowColor];
[self.progressView setTitleLabelText:@"Loading ..."];
[self.progressView show:YES];
return YES;
}

-(void)webViewDidFinishLoad:(UIWebView *)webView
{
[self.progressView dismiss:YES];
}
@end

最佳答案

不知道为什么它要打电话两次,但是您可以这样做。

if(!self.progressView){
self.progressView = [MRProgressOverlayView new];
self.progressView.mode = MRProgressOverlayViewModeIndeterminateSmall;
[self.view.window addSubview:self.progressView];
[self.progressView setTintColor:self.yellowColor];
[self.progressView setTitleLabelText:@"Loading ..."];
[self.progressView show:YES];
}

-(void)webViewDidFinishLoad:(UIWebView *)webView
{
[self.progressView dismiss:YES];
self.progressView = nil;
}

关于ios - UIWebView两次启动-iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36174170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com