Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

property alwaysShowNavigationBar #18

Open
wants to merge 15 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
22 changes: 21 additions & 1 deletion Demo/Classes/ViewController.m
Expand Up @@ -9,12 +9,30 @@
#import "ViewController.h"
#import "SVWebViewController.h"

@interface MyCustomActivity : SVWebViewControllerActivity
@end

@implementation MyCustomActivity

-(NSString *)activityTitle {
return @"Custom Activity";
}

-(void)performActivity {
// if you want to display a view controller override activityViewController instead
NSString *message = self.webView.request.URL.absoluteString;
[[[UIAlertView alloc] initWithTitle:@"custom activity" message:message delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles: nil] show];
}

@end

@implementation ViewController


- (void)pushWebViewController {
NSURL *URL = [NSURL URLWithString:@"http://en.wikipedia.org/wiki/Friday_(Rebecca_Black_song)"];
SVWebViewController *webViewController = [[SVWebViewController alloc] initWithURL:URL];
webViewController.alwaysShowNavigationBar = NO;
[self.navigationController pushViewController:webViewController animated:YES];
}

Expand All @@ -23,7 +41,9 @@ - (void)presentWebViewController {
NSURL *URL = [NSURL URLWithString:@"http://en.wikipedia.org/wiki/Friday_(Rebecca_Black_song)"];
SVModalWebViewController *webViewController = [[SVModalWebViewController alloc] initWithURL:URL];
webViewController.modalPresentationStyle = UIModalPresentationPageSheet;
webViewController.availableActions = SVWebViewControllerAvailableActionsOpenInSafari | SVWebViewControllerAvailableActionsOpenInChrome | SVWebViewControllerAvailableActionsCopyLink | SVWebViewControllerAvailableActionsMailLink;
webViewController.excludedActivityTypes = [NSArray arrayWithObjects:SVWebViewControllerActivityTypeMail, SVWebViewControllerActivityTypeSafari, SVWebViewControllerActivityTypeChrome, nil];
webViewController.applicationActivities = [NSArray arrayWithObject:[MyCustomActivity new]];
webViewController.alwaysShowNavigationBar = NO;
[self presentModalViewController:webViewController animated:YES];
}

Expand Down
33 changes: 21 additions & 12 deletions SVWebViewController/SVModalWebViewController.h
Expand Up @@ -8,17 +8,6 @@

#import <UIKit/UIKit.h>

enum {
SVWebViewControllerAvailableActionsNone = 0,
SVWebViewControllerAvailableActionsOpenInSafari = 1 << 0,
SVWebViewControllerAvailableActionsMailLink = 1 << 1,
SVWebViewControllerAvailableActionsCopyLink = 1 << 2,
SVWebViewControllerAvailableActionsOpenInChrome = 1 << 3
};

typedef NSUInteger SVWebViewControllerAvailableActions;


@class SVWebViewController;

@interface SVModalWebViewController : UINavigationController
Expand All @@ -27,6 +16,26 @@ typedef NSUInteger SVWebViewControllerAvailableActions;
- (id)initWithURL:(NSURL *)URL;

@property (nonatomic, strong) UIColor *barsTintColor;
@property (nonatomic, readwrite) SVWebViewControllerAvailableActions availableActions;

@property (nonatomic, copy) NSArray *excludedActivityTypes;
@property (nonatomic, copy) NSArray *applicationActivities;
@property (nonatomic, readwrite) BOOL alwaysShowNavigationBar;

@end

@interface SVWebViewControllerActivity : NSObject

@property (strong, readonly) UIWebView *webView;

- (NSString *)activityTitle;
- (UIViewController *)activityViewController;
- (void)performActivity;

- (void)activityDidFinish:(BOOL)completed;

@end

extern NSString *const SVWebViewControllerActivityTypeSafari;
extern NSString *const SVWebViewControllerActivityTypeChrome;
extern NSString *const SVWebViewControllerActivityTypeMail;
extern NSString *const SVWebViewControllerActivityTypeCopyToPasteboard;
26 changes: 23 additions & 3 deletions SVWebViewController/SVModalWebViewController.m
Expand Up @@ -18,7 +18,7 @@ @interface SVModalWebViewController ()

@implementation SVModalWebViewController

@synthesize barsTintColor, availableActions, webViewController;
@synthesize barsTintColor, webViewController;

#pragma mark - Initialization

Expand All @@ -41,8 +41,28 @@ - (void)viewWillAppear:(BOOL)animated {
self.navigationBar.tintColor = self.barsTintColor;
}

- (void)setAvailableActions:(SVWebViewControllerAvailableActions)newAvailableActions {
self.webViewController.availableActions = newAvailableActions;
-(NSArray *)excludedActivityTypes {
return self.webViewController.excludedActivityTypes;
}

-(void)setExcludedActivityTypes:(NSArray *)excludedActivityTypes {
self.webViewController.excludedActivityTypes = excludedActivityTypes;
}

-(NSArray *)applicationActivities {
return self.webViewController.excludedActivityTypes;
}

-(void)setApplicationActivities:(NSArray *)applicationActivities {
self.webViewController.applicationActivities = applicationActivities;
}

-(void)setAlwaysShowNavigationBar:(BOOL)alwaysShowNavigationBar {
self.webViewController.alwaysShowNavigationBar = alwaysShowNavigationBar;
}

-(BOOL)alwaysShowNavigationBar {
return self.webViewController.alwaysShowNavigationBar;
}

@end
8 changes: 7 additions & 1 deletion SVWebViewController/SVWebViewController.h
Expand Up @@ -10,11 +10,17 @@

#import "SVModalWebViewController.h"

extern BOOL SVWebViewMediaPlaybackRequiresUserAction;
extern BOOL SVWebViewMediaAllowsInlineMediaPlayback;
extern BOOL SVWebViewMediaPlaybackAllowsAirPlay;

@interface SVWebViewController : UIViewController

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

@property (nonatomic, readwrite) SVWebViewControllerAvailableActions availableActions;
@property (nonatomic, copy) NSArray *excludedActivityTypes;
@property (nonatomic, copy) NSArray *applicationActivities;
@property (nonatomic, readwrite) BOOL alwaysShowNavigationBar;

@end