Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion SVWebViewController/SVModalWebViewController.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,21 @@ enum {

typedef NSUInteger SVWebViewControllerAvailableActions;


@class SVWebViewController;

@protocol SVModalWebViewControllerDelegate <NSObject>
-(void)webViewDidStartLoad:(UIWebView*)webView;
-(void)webViewDidFinishLoad:(UIWebView*)webView;
-(void)webView:(UIWebView*)webView didFailLoadWithError:(NSError *)error;
@end

@interface SVModalWebViewController : UINavigationController

- (id)initWithAddress:(NSString*)urlString;
- (id)initWithURL:(NSURL *)URL;

@property (nonatomic, strong) UIColor *barsTintColor;
@property (nonatomic, readwrite) SVWebViewControllerAvailableActions availableActions;
@property (nonatomic, weak) id <SVModalWebViewControllerDelegate> webViewDelegate;

@end
18 changes: 17 additions & 1 deletion SVWebViewController/SVModalWebViewController.m
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
#import "SVModalWebViewController.h"
#import "SVWebViewController.h"

@interface SVModalWebViewController ()
@interface SVModalWebViewController () <SVWebViewControllerDelegate>

@property (nonatomic, strong) SVWebViewController *webViewController;

Expand All @@ -29,6 +29,7 @@ - (id)initWithAddress:(NSString*)urlString {

- (id)initWithURL:(NSURL *)URL {
self.webViewController = [[SVWebViewController alloc] initWithURL:URL];
self.webViewController.delegate = self;
if (self = [super initWithRootViewController:self.webViewController]) {
self.webViewController.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:webViewController action:@selector(doneButtonClicked:)];
}
Expand All @@ -45,4 +46,19 @@ - (void)setAvailableActions:(SVWebViewControllerAvailableActions)newAvailableAct
self.webViewController.availableActions = newAvailableActions;
}

#pragma mark - WebView delegate
- (void)webViewDidStartLoad:(UIWebView *)webView {
[self.webViewDelegate webViewDidStartLoad:webView];
}


- (void)webViewDidFinishLoad:(UIWebView *)webView {
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
[self.webViewDelegate webViewDidFinishLoad:webView];
}

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
[self.webViewDelegate webView:webView didFailLoadWithError:error];
}

@end
7 changes: 7 additions & 0 deletions SVWebViewController/SVWebViewController.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,18 @@

#import "SVModalWebViewController.h"

@protocol SVWebViewControllerDelegate <NSObject>
-(void)webViewDidStartLoad:(UIWebView*)webView;
-(void)webViewDidFinishLoad:(UIWebView*)webView;
-(void)webView:(UIWebView*)webView didFailLoadWithError:(NSError *)error;
@end

@interface SVWebViewController : UIViewController

- (id)initWithAddress:(NSString*)urlString;
- (id)initWithURL:(NSURL*)URL;

@property (nonatomic, weak) id <SVWebViewControllerDelegate> delegate;
@property (nonatomic, readwrite) SVWebViewControllerAvailableActions availableActions;

@end
9 changes: 6 additions & 3 deletions SVWebViewController/SVWebViewController.m
Original file line number Diff line number Diff line change
Expand Up @@ -287,21 +287,24 @@ - (void)updateToolbarItems {
#pragma mark UIWebViewDelegate

- (void)webViewDidStartLoad:(UIWebView *)webView {
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
[self updateToolbarItems];
[self.delegate webViewDidStartLoad:webView];
}


- (void)webViewDidFinishLoad:(UIWebView *)webView {
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];

self.navigationItem.title = [webView stringByEvaluatingJavaScriptFromString:@"document.title"];
[self updateToolbarItems];
[self.delegate webViewDidFinishLoad:webView];
}

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
[self updateToolbarItems];
[self.delegate webView:webView didFailLoadWithError:error];
}

#pragma mark - Target actions
Expand Down