From f441071fd84946d8a4f87172e69515c384dc62b3 Mon Sep 17 00:00:00 2001 From: Sami Samhuri Date: Mon, 19 Dec 2011 22:32:34 -0500 Subject: [PATCH] iPad support --- 5by5Browser.xcodeproj/project.pbxproj | 16 +- .../UserInterfaceState.xcuserstate | Bin 46625 -> 46118 bytes 5by5Browser/SSAppDelegate.m | 20 +- 5by5Browser/SSDetailViewController.h | 1 - 5by5Browser/SSDetailViewController.m | 51 ++- 5by5Browser/SSMasterViewController.h | 2 + 5by5Browser/SSMasterViewController.m | 41 +-- 5by5Browser/Show.m | 7 +- 5by5Browser/ShowViewController.m | 31 +- .../en.lproj/SSDetailViewController_iPad.xib | 330 +++++++++++++++++- .../SSDetailViewController_iPhone.xib | 34 +- 5by5Browser/{forw.png => forward.png} | Bin 5by5Browser/{forw@2x.png => forward@2x.png} | Bin 13 files changed, 425 insertions(+), 108 deletions(-) rename 5by5Browser/{forw.png => forward.png} (100%) rename 5by5Browser/{forw@2x.png => forward@2x.png} (100%) diff --git a/5by5Browser.xcodeproj/project.pbxproj b/5by5Browser.xcodeproj/project.pbxproj index 8f6b285..d5fe9de 100644 --- a/5by5Browser.xcodeproj/project.pbxproj +++ b/5by5Browser.xcodeproj/project.pbxproj @@ -9,8 +9,8 @@ /* Begin PBXBuildFile section */ 7B043E87149D6984004B52E8 /* back.png in Resources */ = {isa = PBXBuildFile; fileRef = 7B043E83149D6984004B52E8 /* back.png */; }; 7B043E88149D6984004B52E8 /* back@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7B043E84149D6984004B52E8 /* back@2x.png */; }; - 7B043E89149D6984004B52E8 /* forw.png in Resources */ = {isa = PBXBuildFile; fileRef = 7B043E85149D6984004B52E8 /* forw.png */; }; - 7B043E8A149D6984004B52E8 /* forw@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7B043E86149D6984004B52E8 /* forw@2x.png */; }; + 7B043E89149D6984004B52E8 /* forward.png in Resources */ = {isa = PBXBuildFile; fileRef = 7B043E85149D6984004B52E8 /* forward.png */; }; + 7B043E8A149D6984004B52E8 /* forward@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7B043E86149D6984004B52E8 /* forward@2x.png */; }; 7B043E8E149D6FA0004B52E8 /* icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 7B043E8C149D6FA0004B52E8 /* icon.png */; }; 7B043E8F149D6FA0004B52E8 /* icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7B043E8D149D6FA0004B52E8 /* icon@2x.png */; }; 7B1A6ECF149D140600FC5105 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7B1A6ECE149D140600FC5105 /* UIKit.framework */; }; @@ -62,8 +62,8 @@ /* Begin PBXFileReference section */ 7B043E83149D6984004B52E8 /* back.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = back.png; sourceTree = ""; }; 7B043E84149D6984004B52E8 /* back@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "back@2x.png"; sourceTree = ""; }; - 7B043E85149D6984004B52E8 /* forw.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = forw.png; sourceTree = ""; }; - 7B043E86149D6984004B52E8 /* forw@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "forw@2x.png"; sourceTree = ""; }; + 7B043E85149D6984004B52E8 /* forward.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = forward.png; sourceTree = ""; }; + 7B043E86149D6984004B52E8 /* forward@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "forward@2x.png"; sourceTree = ""; }; 7B043E8C149D6FA0004B52E8 /* icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon.png; sourceTree = ""; }; 7B043E8D149D6FA0004B52E8 /* icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon@2x.png"; sourceTree = ""; }; 7B1A6ECA149D140600FC5105 /* 5by5Browser.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = 5by5Browser.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -204,8 +204,8 @@ 7B043E8D149D6FA0004B52E8 /* icon@2x.png */, 7B043E83149D6984004B52E8 /* back.png */, 7B043E84149D6984004B52E8 /* back@2x.png */, - 7B043E85149D6984004B52E8 /* forw.png */, - 7B043E86149D6984004B52E8 /* forw@2x.png */, + 7B043E85149D6984004B52E8 /* forward.png */, + 7B043E86149D6984004B52E8 /* forward@2x.png */, 7B1A6ED6149D140600FC5105 /* 5by5Browser-Info.plist */, 7B1A6ED7149D140600FC5105 /* InfoPlist.strings */, 7B1A6EDA149D140600FC5105 /* main.m */, @@ -347,8 +347,8 @@ 7B868952149D5C6F00F3A2C6 /* ShowViewController_iPhone.xib in Resources */, 7B043E87149D6984004B52E8 /* back.png in Resources */, 7B043E88149D6984004B52E8 /* back@2x.png in Resources */, - 7B043E89149D6984004B52E8 /* forw.png in Resources */, - 7B043E8A149D6984004B52E8 /* forw@2x.png in Resources */, + 7B043E89149D6984004B52E8 /* forward.png in Resources */, + 7B043E8A149D6984004B52E8 /* forward@2x.png in Resources */, 7B043E8E149D6FA0004B52E8 /* icon.png in Resources */, 7B043E8F149D6FA0004B52E8 /* icon@2x.png in Resources */, ); diff --git a/5by5Browser.xcodeproj/project.xcworkspace/xcuserdata/sjs.xcuserdatad/UserInterfaceState.xcuserstate b/5by5Browser.xcodeproj/project.xcworkspace/xcuserdata/sjs.xcuserdatad/UserInterfaceState.xcuserstate index 686b48d8682fc86df457d6a626b2d2d91314ee38..156a4e80d10c4ccb388eafaa4f1fb31bb7ce4106 100644 GIT binary patch literal 46118 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 DC^vvh<5ZVh)o_W<`G_Yn6m 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 OUw5DTzyANMdH8>MTi7K4 diff --git a/5by5Browser/SSAppDelegate.m b/5by5Browser/SSAppDelegate.m index bec0a9d..60bbed7 100644 --- a/5by5Browser/SSAppDelegate.m +++ b/5by5Browser/SSAppDelegate.m @@ -9,6 +9,7 @@ #import "SSAppDelegate.h" #import "SSMasterViewController.h" #import "SSDetailViewController.h" +#import "ShowViewController.h" #import "FiveByFive.h" #import "Show.h" @@ -33,7 +34,13 @@ // Override point for customization after application launch. if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { SSMasterViewController *masterViewController = [[SSMasterViewController alloc] initWithNibName:@"SSMasterViewController_iPhone" bundle:nil]; + ShowViewController *showViewController = [[ShowViewController alloc] initWithNibName: @"ShowViewController_iPhone" bundle: nil]; + SSDetailViewController *detailViewController = [[SSDetailViewController alloc] initWithNibName:@"SSDetailViewController_iPhone" bundle:nil]; + masterViewController.fiveByFive = fiveByFive; + masterViewController.showViewController = showViewController; + showViewController.detailViewController = detailViewController; + self.navigationController = [[UINavigationController alloc] initWithRootViewController:masterViewController]; [self.navigationController.navigationBar setTintColor: [UIColor colorWithWhite: 0.3 alpha: 1.0]]; self.window.rootViewController = self.navigationController; @@ -41,17 +48,22 @@ SSMasterViewController *masterViewController = [[SSMasterViewController alloc] initWithNibName:@"SSMasterViewController_iPad" bundle:nil]; UINavigationController *masterNavigationController = [[UINavigationController alloc] initWithRootViewController:masterViewController]; [masterNavigationController.navigationBar setTintColor: [UIColor colorWithWhite: 0.3 alpha: 1.0]]; - + + ShowViewController *showViewController = [[ShowViewController alloc] initWithNibName: @"ShowViewController_iPad" bundle: nil]; + SSDetailViewController *detailViewController = [[SSDetailViewController alloc] initWithNibName:@"SSDetailViewController_iPad" bundle:nil]; UINavigationController *detailNavigationController = [[UINavigationController alloc] initWithRootViewController:detailViewController]; [detailNavigationController.navigationBar setTintColor: [UIColor colorWithWhite: 0.3 alpha: 1.0]]; - + masterViewController.fiveByFive = fiveByFive; - + masterViewController.showViewController = showViewController; + showViewController.detailViewController = detailViewController; + [detailNavigationController setNavigationBarHidden: YES]; + self.splitViewController = [[UISplitViewController alloc] init]; self.splitViewController.delegate = detailViewController; self.splitViewController.viewControllers = [NSArray arrayWithObjects:masterNavigationController, detailNavigationController, nil]; - + self.window.rootViewController = self.splitViewController; } [self.window makeKeyAndVisible]; diff --git a/5by5Browser/SSDetailViewController.h b/5by5Browser/SSDetailViewController.h index 2464b0b..2d5d6ac 100644 --- a/5by5Browser/SSDetailViewController.h +++ b/5by5Browser/SSDetailViewController.h @@ -12,7 +12,6 @@ @interface SSDetailViewController : UIViewController @property (strong, nonatomic) Episode *episode; -@property (strong, nonatomic) IBOutlet UILabel *detailDescriptionLabel; @property (strong, nonatomic) IBOutlet UIWebView *webView; @property (strong, nonatomic) IBOutlet UIToolbar *toolbar; @property (strong, nonatomic) IBOutlet UIBarButtonItem *backButton; diff --git a/5by5Browser/SSDetailViewController.m b/5by5Browser/SSDetailViewController.m index 233afc4..75da914 100644 --- a/5by5Browser/SSDetailViewController.m +++ b/5by5Browser/SSDetailViewController.m @@ -12,14 +12,16 @@ #import "UIAlertView+marshmallows.h" @interface SSDetailViewController () +{ + UIBarButtonItem *_showsButton; +} @property (strong, nonatomic) UIPopoverController *masterPopoverController; -- (void)configureView; +- (void) configureView; @end @implementation SSDetailViewController @synthesize episode = _episode; -@synthesize detailDescriptionLabel = _detailDescriptionLabel; @synthesize webView = _webView; @synthesize toolbar = _toolbar; @synthesize backButton = _backButton; @@ -48,15 +50,24 @@ { if (self.episode) { self.title = self.episode.name; - self.detailDescriptionLabel.text = self.episode.name; - [self goHome: nil]; } + else { + self.title = @"5by5"; + } + [self goHome: nil]; } - (void)viewDidLoad { [super viewDidLoad]; [self configureView]; + + if (_showsButton) { + NSMutableArray *items = [[self.toolbar items] mutableCopy]; + [items insertObject: _showsButton atIndex: 0]; + [self.toolbar setItems: items animated: YES]; + _showsButton = nil; + } } - (void)viewDidUnload @@ -68,8 +79,6 @@ [self setToolbar:nil]; [self setLoadingView:nil]; [super viewDidUnload]; - // Release any retained subviews of the main view. - self.detailDescriptionLabel = nil; } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation @@ -99,7 +108,12 @@ - (IBAction) goHome: (id)sender { - [self.webView loadRequest: [NSURLRequest requestWithURL: self.episode.url]]; + if (self.episode) { + [self.webView loadRequest: [NSURLRequest requestWithURL: self.episode.url]]; + } + else { + [self.webView loadRequest: [NSURLRequest requestWithURL: [NSURL URLWithString: @"http://5by5.tv"]]]; + } } - (IBAction) sendToInstapaper: (id)sender @@ -129,17 +143,30 @@ #pragma mark - Split view -- (void)splitViewController:(UISplitViewController *)splitController willHideViewController:(UIViewController *)viewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)popoverController +- (void) splitViewController: (UISplitViewController *)splitController + willHideViewController: (UIViewController *)viewController + withBarButtonItem: (UIBarButtonItem *)barButtonItem + forPopoverController: (UIPopoverController *)popoverController { - barButtonItem.title = @"Shows"; - [self.navigationItem setLeftBarButtonItem:barButtonItem animated:YES]; + if (self.toolbar) { + NSMutableArray *items = [[self.toolbar items] mutableCopy]; + [items insertObject: barButtonItem atIndex: 0]; + [self.toolbar setItems: items animated: YES]; + } + else { + _showsButton = barButtonItem; + } self.masterPopoverController = popoverController; } -- (void)splitViewController:(UISplitViewController *)splitController willShowViewController:(UIViewController *)viewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem +- (void) splitViewController: (UISplitViewController *)splitController + willShowViewController: (UIViewController *)viewController + invalidatingBarButtonItem: (UIBarButtonItem *)barButtonItem { // Called when the view is shown again in the split view, invalidating the button and popover controller. - [self.navigationItem setLeftBarButtonItem:nil animated:YES]; + NSMutableArray *items = [[self.toolbar items] mutableCopy]; + [items removeObject: barButtonItem]; + [self.toolbar setItems: items animated: YES]; self.masterPopoverController = nil; } diff --git a/5by5Browser/SSMasterViewController.h b/5by5Browser/SSMasterViewController.h index 27646ec..e4d98be 100644 --- a/5by5Browser/SSMasterViewController.h +++ b/5by5Browser/SSMasterViewController.h @@ -7,11 +7,13 @@ // #import +#import "ShowViewController.h" #import "FiveByFive.h" #import "Show.h" @interface SSMasterViewController : UITableViewController @property (nonatomic, retain) FiveByFive *fiveByFive; +@property (nonatomic, retain) ShowViewController *showViewController; @end diff --git a/5by5Browser/SSMasterViewController.m b/5by5Browser/SSMasterViewController.m index 6ade02b..4ee6da3 100644 --- a/5by5Browser/SSMasterViewController.m +++ b/5by5Browser/SSMasterViewController.m @@ -7,37 +7,25 @@ // #import "SSMasterViewController.h" -#import "ShowViewController.h" #import "Show.h" @implementation SSMasterViewController +@synthesize showViewController = _showViewController; @synthesize fiveByFive = _fiveByFive; - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { - self.title = @"5by5 Shows"; + self.title = @"Shows"; if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) { - self.clearsSelectionOnViewWillAppear = NO; self.contentSizeForViewInPopover = CGSizeMake(320.0, 600.0); } } return self; } -- (void)viewDidLoad -{ - [super viewDidLoad]; -} - -- (void)viewDidUnload -{ - [super viewDidUnload]; - // Release any retained subviews of the main view. -} - - (void) viewWillAppear: (BOOL)animated { [super viewWillAppear: animated]; @@ -45,12 +33,7 @@ for (int i = 0; i < [self tableView: self.tableView numberOfRowsInSection: 0]; ++i) { UITableViewCell *cell = [self.tableView cellForRowAtIndexPath: [NSIndexPath indexPathForRow: i inSection: 0]]; cell.accessoryView = nil; - if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { - cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; - } - else { - cell.accessoryType = UITableViewCellAccessoryNone; - } + cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; } } @@ -91,12 +74,7 @@ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; } - if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { - cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; - } - else { - cell.accessoryType = UITableViewCellAccessoryNone; - } + cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; Show *show = [self.fiveByFive.shows objectAtIndex: indexPath.row]; show.delegate = self; @@ -114,15 +92,8 @@ - (void) gotEpisodesForShow: (Show *)show { - ShowViewController *vc; - if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { - vc = [[ShowViewController alloc] initWithNibName: @"ShowViewController_iPhone" bundle: nil]; - } - else { - vc = [[ShowViewController alloc] initWithNibName: @"ShowViewController_iPad" bundle: nil]; - } - vc.show = show; - [self.navigationController pushViewController: vc animated:YES]; + self.showViewController.show = show; + [self.navigationController pushViewController: self.showViewController animated: YES]; } @end diff --git a/5by5Browser/Show.m b/5by5Browser/Show.m index 0b738c2..3dfb145 100644 --- a/5by5Browser/Show.m +++ b/5by5Browser/Show.m @@ -68,18 +68,17 @@ - (void) feedParserDidStart: (MWFeedParser *)parser { - NSLog(@"feed parser started"); +// NSLog(@"feed parser started"); } - (void) feedParser: (MWFeedParser *)parser didParseFeedInfo: (MWFeedInfo *)info { - NSLog(@"feed info: %@", info); +// NSLog(@"feed info: %@", info); } - (void) feedParser: (MWFeedParser *)parser didParseFeedItem: (MWFeedItem *)item { - NSLog(@"feed item: %@", item); - NSLog(@"show name: %@", self.name); +// NSLog(@"feed item: %@", item); [self addEpisode: [Episode episodeWithShow: self name: item.title number: @"" url: [NSURL URLWithString: item.link]]]; } diff --git a/5by5Browser/ShowViewController.m b/5by5Browser/ShowViewController.m index 3b1ae96..7162e3b 100644 --- a/5by5Browser/ShowViewController.m +++ b/5by5Browser/ShowViewController.m @@ -23,7 +23,9 @@ { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { - // Custom initialization + if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) { + self.contentSizeForViewInPopover = CGSizeMake(320.0, 600.0); + } } return self; } @@ -31,26 +33,30 @@ - (void)viewDidLoad { [super viewDidLoad]; - // Do any additional setup after loading the view from its nib. + if (self.show) { + [self configureView]; + } } -- (void)viewDidUnload +- (void) configureView { - [super viewDidUnload]; - // Release any retained subviews of the main view. - // e.g. self.myOutlet = nil; + self.title = self.show.name; + [self.tableView reloadData]; } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { - return (interfaceOrientation == UIInterfaceOrientationPortrait); + if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { + return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); + } else { + return YES; + } } - (void) setShow: (Show *)show { _show = show; - self.title = self.show.name; - [self.tableView reloadData]; + [self configureView]; } #pragma mark - Table View @@ -87,14 +93,9 @@ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { Episode *episode = [self.show.episodes objectAtIndex: indexPath.row]; + self.detailViewController.episode = episode; if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { - if (!self.detailViewController) { - self.detailViewController = [[SSDetailViewController alloc] initWithNibName: @"SSDetailViewController_iPhone" bundle: nil]; - } - self.detailViewController.episode = episode; [self.navigationController pushViewController: self.detailViewController animated:YES]; - } else { - self.detailViewController.episode = episode; } } diff --git a/5by5Browser/en.lproj/SSDetailViewController_iPad.xib b/5by5Browser/en.lproj/SSDetailViewController_iPad.xib index e9ffe27..59df2b2 100644 --- a/5by5Browser/en.lproj/SSDetailViewController_iPad.xib +++ b/5by5Browser/en.lproj/SSDetailViewController_iPad.xib @@ -11,9 +11,12 @@ 1145 - IBProxyObject - IBUIView IBUIWebView + IBUIBarButtonItem + IBUIToolbar + IBUIActivityIndicatorView + IBUIView + IBProxyObject com.apple.InterfaceBuilder.IBCocoaTouchPlugin @@ -35,13 +38,91 @@ 274 + + + 290 + {768, 44} + + + + _NS:371 + NO + NO + IBIPadFramework + + + IBIPadFramework + + 5 + + + NO + + NSImage + back.png + + IBIPadFramework + + + + IBIPadFramework + 17 + + 6 + + + Home + IBIPadFramework + 1 + + + 1 + MC4zMjE1Njg2Mjc1IDAgMAA + + + + IBIPadFramework + 17 + + 6 + + + NO + + NSImage + forward.png + + IBIPadFramework + + + + IBIPadFramework + + 5 + + + Instapaper + IBIPadFramework + 1 + + + 1 + MC4zMjE1Njg2Mjc1IDAgMAA + + + + + 3 + MC4zMzMzMzMzMzMzAA + + 274 - {768, 1004} + {{0, 44}, {768, 960}} - + _NS:693 1 @@ -51,11 +132,41 @@ 1 YES + + + 274 + + + + 301 + {{366, 439}, {37, 37}} + + + + _NS:1030 + NO + IBIPadFramework + NO + YES + 0 + + + {{0, 44}, {768, 960}} + + + + _NS:196 + + 1 + MCAwIDAgMC42AA + + IBIPadFramework + {{0, 20}, {768, 1004}} - + 3 MQA @@ -85,6 +196,46 @@ 69 + + + loadingView + + + + 83 + + + + backButton + + + + 99 + + + + forwardButton + + + + 100 + + + + instapaperButton + + + + 101 + + + + toolbar + + + + 102 + delegate @@ -93,6 +244,38 @@ 68 + + + sendToInstapaper: + + + + 104 + + + + goHome: + + + + 103 + + + + goForward + + + + 105 + + + + goBack + + + + 106 + @@ -117,7 +300,9 @@ 8 + + @@ -126,6 +311,77 @@ + + 70 + + + + + + Loading View + + + 78 + + + + + 89 + + + + + + + + + + + + + + + 95 + + + Bar Button Item - Back + + + 94 + + + Bar Button Item - Forward + + + 93 + + + + + 92 + + + + + 91 + + + + + 90 + + + + + 96 + + + + + 98 + + + @@ -134,27 +390,77 @@ UIResponder com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin - 69 + 107 SSDetailViewController UIViewController + + id + id + + + + goHome: + id + + + sendToInstapaper: + id + + - UILabel + UIBarButtonItem + UIBarButtonItem + UIBarButtonItem + UIView + UIBarButtonItem + UIToolbar UIWebView - - detailDescriptionLabel - UILabel + + backButton + UIBarButtonItem + + + forwardButton + UIBarButtonItem + + + instapaperButton + UIBarButtonItem + + + loadingView + UIView + + + showsButton + UIBarButtonItem + + + toolbar + UIToolbar webView @@ -172,6 +478,10 @@ IBIPadFramework YES 3 + + {15, 18} + {15, 18} + 1145 diff --git a/5by5Browser/en.lproj/SSDetailViewController_iPhone.xib b/5by5Browser/en.lproj/SSDetailViewController_iPhone.xib index 716bd44..fa9c1f2 100644 --- a/5by5Browser/en.lproj/SSDetailViewController_iPhone.xib +++ b/5by5Browser/en.lproj/SSDetailViewController_iPhone.xib @@ -44,7 +44,7 @@ {320, 416} - + _NS:693 1 @@ -110,7 +110,7 @@ NO NSImage - forw.png + forward.png IBCocoaTouchFramework @@ -121,15 +121,15 @@ MC4zMzMzMzMzMzMzAA - + 274 - - + + 301 {{142, 189}, {37, 37}} - + _NS:1030 @@ -143,7 +143,7 @@ {320, 416} - + _NS:196 1 @@ -221,7 +221,7 @@ loadingView - + 28 @@ -279,7 +279,7 @@ - + @@ -347,16 +347,17 @@ 26 - + - + + Loading View 27 - - + + @@ -404,7 +405,6 @@ UIBarButtonItem - UILabel UIBarButtonItem UIBarButtonItem UIView @@ -416,10 +416,6 @@ backButton UIBarButtonItem - - detailDescriptionLabel - UILabel - forwardButton UIBarButtonItem @@ -454,7 +450,7 @@ 3 {15, 18} - {15, 18} + {15, 18} 1145 diff --git a/5by5Browser/forw.png b/5by5Browser/forward.png similarity index 100% rename from 5by5Browser/forw.png rename to 5by5Browser/forward.png diff --git a/5by5Browser/forw@2x.png b/5by5Browser/forward@2x.png similarity index 100% rename from 5by5Browser/forw@2x.png rename to 5by5Browser/forward@2x.png