Skip to content

Commit

Permalink
Add initWithURLRequest method, credit to @filipbec
Browse files Browse the repository at this point in the history
  • Loading branch information
gcamp committed Jul 15, 2014
2 parents d817284 + a8e2ce9 commit caddabe
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 20 deletions.
1 change: 1 addition & 0 deletions SVWebViewController/SVModalWebViewController.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

- (instancetype)initWithAddress:(NSString*)urlString;
- (instancetype)initWithURL:(NSURL *)URL;
- (instancetype)initWithURLRequest:(NSURLRequest *)request;

@property (nonatomic, strong) UIColor *barsTintColor;

Expand Down
10 changes: 7 additions & 3 deletions SVWebViewController/SVModalWebViewController.m
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,16 @@ @implementation SVModalWebViewController
#pragma mark - Initialization


- (id)initWithAddress:(NSString*)urlString {
- (instancetype)initWithAddress:(NSString*)urlString {
return [self initWithURL:[NSURL URLWithString:urlString]];
}

- (id)initWithURL:(NSURL *)URL {
self.webViewController = [[SVWebViewController alloc] initWithURL:URL];
- (instancetype)initWithURL:(NSURL *)URL {
return [self initWithURLRequest:[NSURLRequest requestWithURL:URL]];
}

- (instancetype)initWithURLRequest:(NSURLRequest *)request {
self.webViewController = [[SVWebViewController alloc] initWithURLRequest:request];
if (self = [super initWithRootViewController:self.webViewController]) {
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
target:self.webViewController
Expand Down
1 change: 1 addition & 0 deletions SVWebViewController/SVWebViewController.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,6 @@

- (instancetype)initWithAddress:(NSString*)urlString;
- (instancetype)initWithURL:(NSURL*)URL;
- (instancetype)initWithURLRequest:(NSURLRequest *)request;

@end
33 changes: 16 additions & 17 deletions SVWebViewController/SVWebViewController.m
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,9 @@ @interface SVWebViewController () <UIWebViewDelegate>
@property (nonatomic, strong) UIBarButtonItem *actionBarButtonItem;

@property (nonatomic, strong) UIWebView *webView;
@property (nonatomic, strong) NSURL *URL;
@property (nonatomic, strong) NSURLRequest *request;

- (id)initWithAddress:(NSString*)urlString;
- (id)initWithURL:(NSURL*)URL;
- (void)loadURL:(NSURL*)URL;
- (void)loadRequest:(NSURLRequest*)request;

- (void)updateToolbarItems;

Expand All @@ -46,28 +44,31 @@ - (void)dealloc {
self.webView.delegate = nil;
}

- (id)initWithAddress:(NSString *)urlString {
- (instancetype)initWithAddress:(NSString *)urlString {
return [self initWithURL:[NSURL URLWithString:urlString]];
}

- (id)initWithURL:(NSURL*)pageURL {

if(self = [super init]) {
self.URL = pageURL;
- (instancetype)initWithURL:(NSURL*)pageURL {
return [self initWithRequest:[NSURLRequest requestWithURL:pageURL]];
}

- (instancetype)initWithRequest:(NSURLRequest*)request {
self = [super init];
if (self) {
self.request = request;
}

return self;
}

- (void)loadURL:(NSURL *)pageURL {
[self.webView loadRequest:[NSURLRequest requestWithURL:pageURL]];
- (void)loadRequest:(NSURLRequest*)request {
[self.webView loadRequest:request];
}

#pragma mark - View lifecycle

- (void)loadView {
self.view = self.webView;
[self loadURL:self.URL];
[self loadRequest:self.request];
}

- (void)viewDidLoad {
Expand Down Expand Up @@ -265,10 +266,8 @@ - (void)stopClicked:(UIBarButtonItem *)sender {

- (void)actionButtonClicked:(id)sender {
NSArray *activities = @[[SVWebViewControllerActivitySafari new], [SVWebViewControllerActivityChrome new]];
NSURL *url = self.self.webView.request.URL;
if (!url || [[url absoluteString] isEqualToString:@""]) {
url = self.URL;
}

NSURL *url = self.webView.request.URL ? self.webView.request.URL : self.request.URL;
if ([[url absoluteString] hasPrefix:@"file:///"]) {
UIDocumentInteractionController *dc = [UIDocumentInteractionController interactionControllerWithURL:url];
[dc presentOptionsMenuFromRect:self.view.bounds inView:self.view animated:YES];
Expand Down

0 comments on commit caddabe

Please sign in to comment.