Working prototype of new story traversal on iOS app.

This commit is contained in:
Samuel Clay 2012-11-05 15:12:42 -08:00
parent 7199fb2601
commit c120662054
17 changed files with 2800 additions and 2563 deletions

View file

@ -39,6 +39,7 @@
@class NBContainerViewController;
@class FindSitesViewController;
@class UnreadCounts;
@class StoryPageControl;
@interface NewsBlurAppDelegate : BaseViewController <UIApplicationDelegate, UIAlertViewDelegate> {
UIWindow *window;
@ -64,6 +65,7 @@
FontSettingsViewController *fontSettingsViewController;
StoryDetailViewController *storyDetailViewController;
StoryPageControl *storyPageControl;
ShareViewController *shareViewController;
LoginViewController *loginViewController;
AddSiteViewController *addSiteViewController;
@ -137,6 +139,7 @@
@property (nonatomic) IBOutlet FeedDashboardViewController *feedDashboardViewController;
@property (nonatomic) IBOutlet FriendsListViewController *friendsListViewController;
@property (nonatomic) IBOutlet StoryDetailViewController *storyDetailViewController;
@property (nonatomic) IBOutlet StoryPageControl *storyPageControl;
@property (nonatomic) IBOutlet LoginViewController *loginViewController;
@property (nonatomic) IBOutlet AddSiteViewController *addSiteViewController;
@property (nonatomic) IBOutlet FindSitesViewController *findSitesViewController;

View file

@ -14,6 +14,7 @@
#import "FeedsMenuViewController.h"
#import "FeedDetailMenuViewController.h"
#import "StoryDetailViewController.h"
#import "StoryPageControl.h"
#import "FirstTimeUserViewController.h"
#import "FriendsListViewController.h"
#import "LoginViewController.h"
@ -57,6 +58,7 @@
@synthesize friendsListViewController;
@synthesize fontSettingsViewController;
@synthesize storyDetailViewController;
@synthesize storyPageControl;
@synthesize shareViewController;
@synthesize loginViewController;
@synthesize addSiteViewController;
@ -593,6 +595,8 @@
}
- (void)loadStoryDetailView {
// [self.storyDetailViewController initStory];
NSString *feedTitle;
if (self.isRiverView) {
if ([self.activeFolder isEqualToString:@"river_blurblogs"]) {
@ -611,15 +615,13 @@
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
UIBarButtonItem *newBackButton = [[UIBarButtonItem alloc] initWithTitle:feedTitle style: UIBarButtonItemStyleBordered target: nil action: nil];
[feedDetailViewController.navigationItem setBackBarButtonItem: newBackButton];
UINavigationController *navController = self.navigationController;
[navController pushViewController:storyDetailViewController animated:YES];
UINavigationController *navController = self.navigationController;
[navController pushViewController:storyPageControl animated:YES];
//self.storyDetailViewController.navigationItem.titleView = nil;
[navController.navigationItem setLeftBarButtonItem:[[UIBarButtonItem alloc] initWithTitle:feedTitle style:UIBarButtonItemStyleBordered target:nil action:nil]];
navController.navigationItem.hidesBackButton = YES;
navController.navigationBar.tintColor = [UIColor colorWithRed:0.16f green:0.36f blue:0.46 alpha:0.9];
}
[self.storyDetailViewController initStory];
}
- (void)navigationController:(UINavigationController *)navController

View file

@ -0,0 +1,20 @@
//
// ViewController.h
// PageViewController
//
// Created by Tom Fewster on 11/01/2012.
//
#import <UIKit/UIKit.h>
@interface PagerViewController : UIViewController <UIScrollViewDelegate>
@property (nonatomic, strong) IBOutlet UIScrollView *scrollView;
@property (nonatomic, strong) IBOutlet UIPageControl *pageControl;
- (IBAction)changePage:(id)sender;
- (void)previousPage;
- (void)nextPage;
@end

View file

@ -0,0 +1,257 @@
//
// ViewController.m
// PageViewController
//
// Created by Tom Fewster on 11/01/2012.
//
#import "PagerViewController.h"
@interface PagerViewController ()
@property (assign) BOOL pageControlUsed;
@property (assign) NSUInteger page;
@property (assign) BOOL rotating;
- (void)loadScrollViewWithPage:(int)page;
@end
@implementation PagerViewController
@synthesize scrollView;
@synthesize pageControl;
@synthesize pageControlUsed = _pageControlUsed;
@synthesize page = _page;
@synthesize rotating = _rotating;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self.scrollView setPagingEnabled:YES];
[self.scrollView setScrollEnabled:YES];
[self.scrollView setShowsHorizontalScrollIndicator:NO];
[self.scrollView setShowsVerticalScrollIndicator:NO];
[self.scrollView setDelegate:self];
}
- (BOOL)automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers {
return NO;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return YES;
}
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
UIViewController *viewController = [self.childViewControllers objectAtIndex:self.pageControl.currentPage];
[viewController willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
_rotating = YES;
}
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
UIViewController *viewController = [self.childViewControllers objectAtIndex:self.pageControl.currentPage];
[viewController willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
self.scrollView.contentSize = CGSizeMake(scrollView.frame.size.width * [self.childViewControllers count], scrollView.frame.size.height);
NSUInteger page = 0;
for (viewController in self.childViewControllers) {
CGRect frame = self.scrollView.frame;
frame.origin.x = frame.size.width * page;
frame.origin.y = 0;
viewController.view.frame = frame;
page++;
}
CGRect frame = self.scrollView.frame;
frame.origin.x = frame.size.width * _page;
frame.origin.y = 0;
[self.scrollView scrollRectToVisible:frame animated:NO];
}
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
_rotating = NO;
UIViewController *viewController = [self.childViewControllers objectAtIndex:self.pageControl.currentPage];
[viewController didRotateFromInterfaceOrientation:fromInterfaceOrientation];
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
for (NSUInteger i =0; i < [self.childViewControllers count]; i++) {
[self loadScrollViewWithPage:i];
}
self.pageControl.currentPage = 0;
_page = 0;
[self.pageControl setNumberOfPages:[self.childViewControllers count]];
UIViewController *viewController = [self.childViewControllers objectAtIndex:self.pageControl.currentPage];
if (viewController.view.superview != nil) {
[viewController viewWillAppear:animated];
}
self.scrollView.contentSize = CGSizeMake(scrollView.frame.size.width * [self.childViewControllers count], scrollView.frame.size.height);
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
if ([self.childViewControllers count]) {
UIViewController *viewController = [self.childViewControllers objectAtIndex:self.pageControl.currentPage];
if (viewController.view.superview != nil) {
[viewController viewDidAppear:animated];
}
}
}
- (void)viewWillDisappear:(BOOL)animated {
if ([self.childViewControllers count]) {
UIViewController *viewController = [self.childViewControllers objectAtIndex:self.pageControl.currentPage];
if (viewController.view.superview != nil) {
[viewController viewWillDisappear:animated];
}
}
[super viewWillDisappear:animated];
}
- (void)viewDidDisappear:(BOOL)animated {
UIViewController *viewController = [self.childViewControllers objectAtIndex:self.pageControl.currentPage];
if (viewController.view.superview != nil) {
[viewController viewDidDisappear:animated];
}
[super viewDidDisappear:animated];
}
- (void)loadScrollViewWithPage:(int)page {
if (page < 0)
return;
if (page >= [self.childViewControllers count])
return;
// replace the placeholder if necessary
UIViewController *controller = [self.childViewControllers objectAtIndex:page];
if (controller == nil) {
return;
}
// add the controller's view to the scroll view
if (controller.view.superview == nil) {
CGRect frame = self.scrollView.frame;
frame.origin.x = frame.size.width * page;
frame.origin.y = 0;
controller.view.frame = frame;
[self.scrollView addSubview:controller.view];
}
}
- (void)previousPage {
if (_page - 1 > 0) {
// update the scroll view to the appropriate page
CGRect frame = self.scrollView.frame;
frame.origin.x = frame.size.width * (_page - 1);
frame.origin.y = 0;
UIViewController *oldViewController = [self.childViewControllers objectAtIndex:_page];
UIViewController *newViewController = [self.childViewControllers objectAtIndex:_page - 1];
[oldViewController viewWillDisappear:YES];
[newViewController viewWillAppear:YES];
[self.scrollView scrollRectToVisible:frame animated:YES];
self.pageControl.currentPage = _page - 1;
// Set the boolean used when scrolls originate from the UIPageControl. See scrollViewDidScroll: above.
_pageControlUsed = YES;
}
}
- (void)nextPage {
if (_page + 1 > self.pageControl.numberOfPages) {
// update the scroll view to the appropriate page
CGRect frame = self.scrollView.frame;
frame.origin.x = frame.size.width * (_page + 1);
frame.origin.y = 0;
UIViewController *oldViewController = [self.childViewControllers objectAtIndex:_page];
UIViewController *newViewController = [self.childViewControllers objectAtIndex:_page + 1];
[oldViewController viewWillDisappear:YES];
[newViewController viewWillAppear:YES];
[self.scrollView scrollRectToVisible:frame animated:YES];
self.pageControl.currentPage = _page + 1;
// Set the boolean used when scrolls originate from the UIPageControl. See scrollViewDidScroll: above.
_pageControlUsed = YES;
}
}
- (IBAction)changePage:(id)sender {
int page = ((UIPageControl *)sender).currentPage;
// update the scroll view to the appropriate page
CGRect frame = self.scrollView.frame;
frame.origin.x = frame.size.width * page;
frame.origin.y = 0;
UIViewController *oldViewController = [self.childViewControllers objectAtIndex:_page];
UIViewController *newViewController = [self.childViewControllers objectAtIndex:self.pageControl.currentPage];
[oldViewController viewWillDisappear:YES];
[newViewController viewWillAppear:YES];
[self.scrollView scrollRectToVisible:frame animated:YES];
// Set the boolean used when scrolls originate from the UIPageControl. See scrollViewDidScroll: above.
_pageControlUsed = YES;
}
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView {
UIViewController *oldViewController = [self.childViewControllers objectAtIndex:_page];
UIViewController *newViewController = [self.childViewControllers objectAtIndex:self.pageControl.currentPage];
[oldViewController viewDidDisappear:YES];
[newViewController viewDidAppear:YES];
_page = self.pageControl.currentPage;
}
#pragma mark -
#pragma mark UIScrollViewDelegate methods
- (void)scrollViewDidScroll:(UIScrollView *)sender {
// We don't want a "feedback loop" between the UIPageControl and the scroll delegate in
// which a scroll event generated from the user hitting the page control triggers updates from
// the delegate method. We use a boolean to disable the delegate logic when the page control is used.
if (_pageControlUsed || _rotating) {
// do nothing - the scroll was initiated from the page control, not the user dragging
return;
}
// Switch the indicator when more than 50% of the previous/next page is visible
CGFloat pageWidth = self.scrollView.frame.size.width;
int page = floor((self.scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
if (self.pageControl.currentPage != page) {
UIViewController *oldViewController = [self.childViewControllers objectAtIndex:self.pageControl.currentPage];
UIViewController *newViewController = [self.childViewControllers objectAtIndex:page];
NSLog(@"Change page %d", page);
[oldViewController viewWillDisappear:YES];
[newViewController viewWillAppear:YES];
self.pageControl.currentPage = page;
[oldViewController viewDidDisappear:YES];
[newViewController viewDidAppear:YES];
_page = page;
}
}
// At the begin of scroll dragging, reset the boolean used when scrolls originate from the UIPageControl
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
_pageControlUsed = NO;
}
// At the end of scroll animation, reset the boolean used when scrolls originate from the UIPageControl
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
_pageControlUsed = NO;
}
@end

View file

@ -32,6 +32,7 @@ UIScrollViewDelegate> {
UIToolbar *bottomPlaceholderToolbar;
UIBarButtonItem *buttonBack;
Class popoverClass;
NSInteger pageIndex;
BOOL pullingScrollview;
}
@ -57,6 +58,7 @@ UIScrollViewDelegate> {
@property (nonatomic, strong) IBOutlet UIBarButtonItem *subscribeButton;
@property (nonatomic) IBOutlet UILabel *noStorySelectedLabel;
@property (nonatomic, assign) BOOL pullingScrollview;
@property NSInteger pageIndex;
- (void)setNextPreviousButtons;

View file

@ -54,6 +54,7 @@
@synthesize buttonBack;
@synthesize bottomPlaceholderToolbar;
@synthesize pullingScrollview;
@synthesize pageIndex;
// private
@synthesize inTouchMove;
@ -156,6 +157,8 @@
}
- (void)viewWillAppear:(BOOL)animated {
NSLog(@"SD willAppear");
[self initStory];
[super viewWillAppear:animated];
[appDelegate adjustStoryDetailWebView];
[self setActiveStory];
@ -211,7 +214,7 @@
- (void)initStory {
id storyId = [appDelegate.activeStory objectForKey:@"id"];
[appDelegate pushReadStory:storyId];
[self showStory];
[self showStory];
self.webView.scalesPageToFit = YES;
[self.loadingIndicator stopAnimating];
}
@ -634,6 +637,8 @@
}
- (void)showStory {
NSLog(@"showStory: %@", appDelegate.activeStory);
appDelegate.inStoryDetail = YES;
// when we show story, we mark it as read
[self markStoryAsRead];
@ -820,9 +825,9 @@
self.webView.scrollView.scrollIndicatorInsets = UIEdgeInsetsMake(9, 0, 0, 0);
}
[self.webView insertSubview:feedTitleGradient aboveSubview:self.webView.scrollView];
[self.webView.scrollView setContentOffset:CGPointMake(0, (appDelegate.isRiverView ||
appDelegate.isSocialView) ? -20 : -9)
animated:NO];
// [self.webView.scrollView setContentOffset:CGPointMake(0, (appDelegate.isRiverView ||
// appDelegate.isSocialView) ? -20 : -9)
// animated:NO];
[self.webView.scrollView addObserver:self forKeyPath:@"contentOffset"
options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld
context:nil];

View file

@ -0,0 +1,32 @@
//
// StoryPageControl.h
// NewsBlur
//
// Created by Samuel Clay on 11/2/12.
// Copyright (c) 2012 NewsBlur. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "BaseViewController.h"
#import "NewsBlurAppDelegate.h"
#import "PagerViewController.h"
@class NewsBlurAppDelegate;
@interface StoryPageControl : UIViewController
<UIScrollViewDelegate> {
NewsBlurAppDelegate *appDelegate;
}
@property (nonatomic) IBOutlet NewsBlurAppDelegate *appDelegate;
@property (nonatomic) StoryDetailViewController *currentPage;
@property (nonatomic) StoryDetailViewController *nextPage;
@property (nonatomic, strong) IBOutlet UIScrollView *scrollView;
@property (nonatomic, strong) IBOutlet UIPageControl *pageControl;
- (void)applyNewIndex:(NSInteger)newIndex pageController:(StoryDetailViewController *)pageController;
- (IBAction)changePage:(id)sender;
@end

View file

@ -0,0 +1,156 @@
//
// StoryPageControl.m
// NewsBlur
//
// Created by Samuel Clay on 11/2/12.
// Copyright (c) 2012 NewsBlur. All rights reserved.
//
#import "StoryPageControl.h"
#import "StoryDetailViewController.h"
#import "PagerViewController.h"
@implementation StoryPageControl
@synthesize appDelegate;
@synthesize currentPage, nextPage;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
currentPage = [[StoryDetailViewController alloc] initWithNibName:@"StoryDetailViewController" bundle:nil];
nextPage = [[StoryDetailViewController alloc] initWithNibName:@"StoryDetailViewController" bundle:nil];
currentPage.appDelegate = appDelegate;
nextPage.appDelegate = appDelegate;
[self.scrollView addSubview:currentPage.view];
[self.scrollView addSubview:nextPage.view];
[self.scrollView setPagingEnabled:YES];
[self.scrollView setScrollEnabled:YES];
[self.scrollView setShowsHorizontalScrollIndicator:NO];
[self.scrollView setShowsVerticalScrollIndicator:NO];
// [self.scrollView setDelegate:self];
}
- (void)viewWillAppear:(BOOL)animated {
NSInteger widthCount = self.appDelegate.originalStoryCount;
if (widthCount == 0) {
widthCount = 1;
}
currentPage.view.frame = self.scrollView.frame;
nextPage.view.frame = self.scrollView.frame;
self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width
* widthCount,
self.scrollView.frame.size.height);
self.scrollView.contentOffset = CGPointMake(0, 0);
[self applyNewIndex:0 pageController:currentPage];
[self applyNewIndex:1 pageController:nextPage];
}
- (void)applyNewIndex:(NSInteger)newIndex pageController:(StoryDetailViewController *)pageController
{
NSInteger pageCount = appDelegate.originalStoryCount;
BOOL outOfBounds = newIndex >= pageCount || newIndex < 0;
if (!outOfBounds) {
CGRect pageFrame = pageController.view.frame;
pageFrame.origin.y = 0;
pageFrame.origin.x = self.scrollView.frame.size.width * newIndex;
pageController.view.frame = pageFrame;
} else {
CGRect pageFrame = pageController.view.frame;
pageFrame.origin.y = self.scrollView.frame.size.height;
pageController.view.frame = pageFrame;
}
pageController.pageIndex = newIndex;
appDelegate.activeStory = [[appDelegate activeFeedStories] objectAtIndex:pageController.pageIndex];
[pageController setActiveStory];
[pageController initStory];
}
- (void)scrollViewDidScroll:(UIScrollView *)sender
{
[sender setContentOffset:CGPointMake(sender.contentOffset.x, 0)];
CGFloat pageWidth = self.scrollView.frame.size.width;
float fractionalPage = self.scrollView.contentOffset.x / pageWidth;
NSInteger lowerNumber = floor(fractionalPage);
NSInteger upperNumber = lowerNumber + 1;
// NSLog(@"Scroll to %@", NSStringFromCGPoint(sender.contentOffset));
if (lowerNumber == currentPage.pageIndex)
{
if (upperNumber != nextPage.pageIndex)
{
[self applyNewIndex:upperNumber pageController:nextPage];
}
}
else if (upperNumber == currentPage.pageIndex)
{
if (lowerNumber != nextPage.pageIndex)
{
[self applyNewIndex:lowerNumber pageController:nextPage];
}
}
else
{
if (lowerNumber == nextPage.pageIndex)
{
[self applyNewIndex:upperNumber pageController:currentPage];
}
else if (upperNumber == nextPage.pageIndex)
{
[self applyNewIndex:lowerNumber pageController:currentPage];
}
else
{
[self applyNewIndex:lowerNumber pageController:currentPage];
[self applyNewIndex:upperNumber pageController:nextPage];
}
}
}
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)newScrollView
{
CGFloat pageWidth = self.scrollView.frame.size.width;
float fractionalPage = self.scrollView.contentOffset.x / pageWidth;
NSInteger nearestNumber = lround(fractionalPage);
if (currentPage.pageIndex != nearestNumber)
{
StoryDetailViewController *swapController = currentPage;
currentPage = nextPage;
nextPage = swapController;
}
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)newScrollView
{
[self scrollViewDidEndScrollingAnimation:newScrollView];
self.pageControl.currentPage = currentPage.pageIndex;
}
- (IBAction)changePage:(id)sender
{
NSInteger pageIndex = self.pageControl.currentPage;
// update the scroll view to the appropriate page
CGRect frame = self.scrollView.frame;
frame.origin.x = frame.size.width * pageIndex;
frame.origin.y = 0;
[self.scrollView scrollRectToVisible:frame animated:YES];
}
@end

File diff suppressed because it is too large Load diff

View file

@ -5,7 +5,7 @@
<key>application-identifier</key>
<string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
<key>get-task-allow</key>
<false/>
<true/>
<key>keychain-access-groups</key>
<array>
<string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>

View file

@ -372,6 +372,9 @@
FF5F3A87162B834E008DBE3E /* bin_closed.png in Resources */ = {isa = PBXBuildFile; fileRef = FF5F3A86162B834E008DBE3E /* bin_closed.png */; };
FF5F3A89162B8377008DBE3E /* arrow_branch.png in Resources */ = {isa = PBXBuildFile; fileRef = FF5F3A88162B8377008DBE3E /* arrow_branch.png */; };
FF5F3A8B162B8390008DBE3E /* car.png in Resources */ = {isa = PBXBuildFile; fileRef = FF5F3A8A162B8390008DBE3E /* car.png */; };
FF6A233216448E0700E15989 /* StoryPageControl.m in Sources */ = {isa = PBXBuildFile; fileRef = FF6A233116448E0700E15989 /* StoryPageControl.m */; };
FF6A23381644932200E15989 /* PagerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = FF6A233516448F0400E15989 /* PagerViewController.m */; };
FF6A23391644957800E15989 /* StoryPageControl.xib in Resources */ = {isa = PBXBuildFile; fileRef = FF6A23361644903900E15989 /* StoryPageControl.xib */; };
FF793E1B13F1A9F700F282D2 /* ASIDataCompressor.m in Sources */ = {isa = PBXBuildFile; fileRef = FF793E1813F1A9F700F282D2 /* ASIDataCompressor.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
FF793E1C13F1A9F700F282D2 /* ASIDataDecompressor.m in Sources */ = {isa = PBXBuildFile; fileRef = FF793E1A13F1A9F700F282D2 /* ASIDataDecompressor.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
FFAD4971144A386100BA6919 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = FFAD4970144A386100BA6919 /* libz.dylib */; };
@ -900,6 +903,11 @@
FF5F3A86162B834E008DBE3E /* bin_closed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bin_closed.png; sourceTree = "<group>"; };
FF5F3A88162B8377008DBE3E /* arrow_branch.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = arrow_branch.png; sourceTree = "<group>"; };
FF5F3A8A162B8390008DBE3E /* car.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = car.png; sourceTree = "<group>"; };
FF6A233016448E0700E15989 /* StoryPageControl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StoryPageControl.h; sourceTree = "<group>"; };
FF6A233116448E0700E15989 /* StoryPageControl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StoryPageControl.m; sourceTree = "<group>"; };
FF6A233416448F0400E15989 /* PagerViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PagerViewController.h; sourceTree = "<group>"; };
FF6A233516448F0400E15989 /* PagerViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PagerViewController.m; sourceTree = "<group>"; };
FF6A23361644903900E15989 /* StoryPageControl.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = StoryPageControl.xib; sourceTree = "<group>"; };
FF793E1713F1A9F700F282D2 /* ASIDataCompressor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASIDataCompressor.h; sourceTree = "<group>"; };
FF793E1813F1A9F700F282D2 /* ASIDataCompressor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASIDataCompressor.m; sourceTree = "<group>"; };
FF793E1913F1A9F700F282D2 /* ASIDataDecompressor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASIDataDecompressor.h; sourceTree = "<group>"; };
@ -1166,12 +1174,17 @@
431B857415A1324200DCE497 /* Story */ = {
isa = PBXGroup;
children = (
FF6A233416448F0400E15989 /* PagerViewController.h */,
FF6A233516448F0400E15989 /* PagerViewController.m */,
7842ECF511D44A530066CF9D /* StoryDetailViewController.h */,
7842ECF611D44A530066CF9D /* StoryDetailViewController.m */,
43763ACE158F90B100B3DBE2 /* FontSettingsViewController.h */,
43763ACF158F90B100B3DBE2 /* FontSettingsViewController.m */,
78095EC6128F30B500230C8E /* OriginalStoryViewController.h */,
78095EC7128F30B500230C8E /* OriginalStoryViewController.m */,
FF6A233016448E0700E15989 /* StoryPageControl.h */,
FF6A233116448E0700E15989 /* StoryPageControl.m */,
FF6A23361644903900E15989 /* StoryPageControl.xib */,
);
name = Story;
sourceTree = "<group>";
@ -2178,6 +2191,7 @@
FF4130A5162F3AA900DDB6A7 /* clock.png in Resources */,
FF4130A9162F3BD300DDB6A7 /* clock_white.png in Resources */,
FF4130AB162F3C2F00DDB6A7 /* archive_white.png in Resources */,
FF6A23391644957800E15989 /* StoryPageControl.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -2327,6 +2341,8 @@
FFDE35DA161D12250034BFDE /* UnreadCountView.m in Sources */,
FFDE35EA162799B90034BFDE /* FeedDetailMenuViewController.m in Sources */,
FF4130A3162E10CF00DDB6A7 /* MenuTableViewCell.m in Sources */,
FF6A233216448E0700E15989 /* StoryPageControl.m in Sources */,
FF6A23381644932200E15989 /* PagerViewController.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -2340,8 +2356,8 @@
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
CLANG_ENABLE_OBJC_ARC = YES;
CODE_SIGN_ENTITLEMENTS = Entitlements.entitlements;
CODE_SIGN_IDENTITY = "iPhone Distribution: NewsBlur, Inc.";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: NewsBlur, Inc.";
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
@ -2363,8 +2379,8 @@
"-ObjC",
);
PRODUCT_NAME = NewsBlur;
PROVISIONING_PROFILE = "EE8BC292-FFF2-41A0-AE29-C4B39D6A2C5A";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "EE8BC292-FFF2-41A0-AE29-C4B39D6A2C5A";
PROVISIONING_PROFILE = "";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
TARGETED_DEVICE_FAMILY = "1,2";
VALID_ARCHS = armv7;
"WARNING_CFLAGS[arch=*]" = "-Wall";
@ -2378,8 +2394,8 @@
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
CLANG_ENABLE_OBJC_ARC = YES;
CODE_SIGN_ENTITLEMENTS = Entitlements.entitlements;
CODE_SIGN_IDENTITY = "iPhone Distribution: NewsBlur, Inc.";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: NewsBlur, Inc.";
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = NewsBlur_Prefix.pch;
@ -2398,8 +2414,8 @@
"-all_load",
);
PRODUCT_NAME = NewsBlur;
PROVISIONING_PROFILE = "EE8BC292-FFF2-41A0-AE29-C4B39D6A2C5A";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "EE8BC292-FFF2-41A0-AE29-C4B39D6A2C5A";
PROVISIONING_PROFILE = "";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
VALID_ARCHS = armv7;

View file

@ -2,6 +2,21 @@
<Bucket
type = "1"
version = "1.0">
<FileBreakpoints>
<FileBreakpoint
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Classes/StoryDetailViewController.m"
timestampString = "373848037.155309"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "641"
endingLineNumber = "641"
landmarkName = "-showStory"
landmarkType = "5">
</FileBreakpoint>
</FileBreakpoints>
<SymbolicBreakpoints>
<SymbolicBreakpoint
shouldBeEnabled = "Yes"

View file

@ -7,14 +7,14 @@
//
#import <UIKit/UIKit.h>
//#import "NewsBlurAppDelegate.h"
#import "NewsBlurAppDelegate.h"
int main(int argc, char *argv[]) {
@autoreleasepool {
int retVal = UIApplicationMain(argc, argv, nil, nil);
// int retVal = UIApplicationMain(argc, argv, nil, nil);
// for iOS6
// int retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([NewsBlurAppDelegate class]));
int retVal = UIApplicationMain(argc, argv, nil, @"NewsBlurAppDelegate");
return retVal;
}
}

View file

@ -47,6 +47,7 @@
<string key="NSFrameSize">{768, 1024}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MSAxIDEAA</bytes>
@ -245,6 +246,18 @@
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
<bool key="IBUIHorizontal">NO</bool>
</object>
<object class="IBUIViewController" id="396232691">
<string key="IBUINibName">StoryPageControl</string>
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics">
<int key="IBUIStatusBarStyle">2</int>
</object>
<object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
<int key="IBUIInterfaceOrientation">1</int>
<int key="interfaceOrientation">1</int>
</object>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
<bool key="IBUIHorizontal">NO</bool>
</object>
<object class="IBUIViewController" id="556336188">
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics">
<int key="IBUIStatusBarStyle">2</int>
@ -324,14 +337,6 @@
<object class="IBObjectContainer" key="IBDocument.Objects">
<object class="NSMutableArray" key="connectionRecords">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">delegate</string>
<reference key="source" ref="841351856"/>
<reference key="destination" ref="664661524"/>
</object>
<int key="connectionID">117</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">feedsViewController</string>
@ -508,6 +513,14 @@
</object>
<int key="connectionID">280</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">storyPageControl</string>
<reference key="source" ref="664661524"/>
<reference key="destination" ref="396232691"/>
</object>
<int key="connectionID">285</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">appDelegate</string>
@ -668,6 +681,14 @@
</object>
<int key="connectionID">279</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">appDelegate</string>
<reference key="source" ref="396232691"/>
<reference key="destination" ref="664661524"/>
</object>
<int key="connectionID">283</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
@ -837,6 +858,11 @@
<reference key="object" ref="145405670"/>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">282</int>
<reference key="object" ref="396232691"/>
<reference key="parent" ref="0"/>
</object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
@ -896,6 +922,9 @@
<string>268.IBPluginDependency</string>
<string>278.CustomClassName</string>
<string>278.IBPluginDependency</string>
<string>282.CustomClassName</string>
<string>282.IBLastUsedUIStatusBarStylesToTargetRuntimesMap</string>
<string>282.IBPluginDependency</string>
<string>3.CustomClassName</string>
<string>3.IBPluginDependency</string>
<string>51.CustomClassName</string>
@ -981,6 +1010,12 @@
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>FeedDetailMenuViewController</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>StoryPageControl</string>
<object class="NSMutableDictionary">
<string key="NS.key.0">IBCocoaTouchFramework</string>
<integer value="0" key="NS.object.0"/>
</object>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>NewsBlurAppDelegate</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>FeedDetailViewController</string>
@ -1009,7 +1044,7 @@
<reference key="dict.values" ref="0"/>
</object>
<nil key="sourceID"/>
<int key="maxID">281</int>
<int key="maxID">285</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
@ -1331,17 +1366,53 @@
<object class="IBPartialClassDescription">
<string key="className">FeedDetailMenuViewController</string>
<string key="superclassName">UIViewController</string>
<object class="NSMutableDictionary" key="actions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>changeOrder:</string>
<string>changeReadFilter:</string>
</object>
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>id</string>
<string>id</string>
</object>
</object>
<object class="NSMutableDictionary" key="actionInfosByName">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>changeOrder:</string>
<string>changeReadFilter:</string>
</object>
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBActionInfo">
<string key="name">changeOrder:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo">
<string key="name">changeReadFilter:</string>
<string key="candidateClassName">id</string>
</object>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>appDelegate</string>
<string>menuTableView</string>
<string>orderSegmentedControl</string>
<string>readFilterSegmentedControl</string>
</object>
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>NewsBlurAppDelegate</string>
<string>UITableView</string>
<string>UISegmentedControl</string>
<string>UISegmentedControl</string>
</object>
</object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
@ -1350,6 +1421,8 @@
<bool key="EncodedWithXMLCoder">YES</bool>
<string>appDelegate</string>
<string>menuTableView</string>
<string>orderSegmentedControl</string>
<string>readFilterSegmentedControl</string>
</object>
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
@ -1361,6 +1434,14 @@
<string key="name">menuTableView</string>
<string key="candidateClassName">UITableView</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">orderSegmentedControl</string>
<string key="candidateClassName">UISegmentedControl</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">readFilterSegmentedControl</string>
<string key="candidateClassName">UISegmentedControl</string>
</object>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
@ -1984,6 +2065,7 @@
<string>fontSizeSegment</string>
<string>fontStyleSegment</string>
<string>largeFontSizeLabel</string>
<string>menuTableView</string>
<string>smallFontSizeLabel</string>
</object>
<object class="NSArray" key="dict.values">
@ -1992,6 +2074,7 @@
<string>UISegmentedControl</string>
<string>UISegmentedControl</string>
<string>UILabel</string>
<string>UITableView</string>
<string>UILabel</string>
</object>
</object>
@ -2003,6 +2086,7 @@
<string>fontSizeSegment</string>
<string>fontStyleSegment</string>
<string>largeFontSizeLabel</string>
<string>menuTableView</string>
<string>smallFontSizeLabel</string>
</object>
<object class="NSArray" key="dict.values">
@ -2023,6 +2107,10 @@
<string key="name">largeFontSizeLabel</string>
<string key="candidateClassName">UILabel</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">menuTableView</string>
<string key="candidateClassName">UITableView</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">smallFontSizeLabel</string>
<string key="candidateClassName">UILabel</string>
@ -2484,6 +2572,7 @@
<string>originalStoryViewController</string>
<string>shareViewController</string>
<string>storyDetailViewController</string>
<string>storyPageControl</string>
<string>userProfileViewController</string>
<string>window</string>
</object>
@ -2511,6 +2600,7 @@
<string>OriginalStoryViewController</string>
<string>ShareViewController</string>
<string>StoryDetailViewController</string>
<string>StoryPageControl</string>
<string>UserProfileViewController</string>
<string>UIWindow</string>
</object>
@ -2541,6 +2631,7 @@
<string>originalStoryViewController</string>
<string>shareViewController</string>
<string>storyDetailViewController</string>
<string>storyPageControl</string>
<string>userProfileViewController</string>
<string>window</string>
</object>
@ -2634,6 +2725,10 @@
<string key="name">storyDetailViewController</string>
<string key="candidateClassName">StoryDetailViewController</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">storyPageControl</string>
<string key="candidateClassName">StoryPageControl</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">userProfileViewController</string>
<string key="candidateClassName">UserProfileViewController</string>
@ -2926,6 +3021,57 @@
<string key="minorKey">./Classes/OriginalStoryViewController.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">PagerViewController</string>
<string key="superclassName">UIViewController</string>
<object class="NSMutableDictionary" key="actions">
<string key="NS.key.0">changePage:</string>
<string key="NS.object.0">id</string>
</object>
<object class="NSMutableDictionary" key="actionInfosByName">
<string key="NS.key.0">changePage:</string>
<object class="IBActionInfo" key="NS.object.0">
<string key="name">changePage:</string>
<string key="candidateClassName">id</string>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>pageControl</string>
<string>scrollView</string>
</object>
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>UIPageControl</string>
<string>UIScrollView</string>
</object>
</object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>pageControl</string>
<string>scrollView</string>
</object>
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBToOneOutletInfo">
<string key="name">pageControl</string>
<string key="candidateClassName">UIPageControl</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">scrollView</string>
<string key="candidateClassName">UIScrollView</string>
</object>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/PagerViewController.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">ShareViewController</string>
<string key="superclassName">UIViewController</string>
@ -3035,7 +3181,7 @@
</object>
<object class="IBPartialClassDescription">
<string key="className">StoryDetailViewController</string>
<string key="superclassName">UIViewController</string>
<string key="superclassName">BaseViewController</string>
<object class="NSMutableDictionary" key="actions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
@ -3238,6 +3384,25 @@
<string key="minorKey">./Classes/StoryDetailViewController.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">StoryPageControl</string>
<string key="superclassName">PagerViewController</string>
<object class="NSMutableDictionary" key="outlets">
<string key="NS.key.0">appDelegate</string>
<string key="NS.object.0">NewsBlurAppDelegate</string>
</object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
<string key="NS.key.0">appDelegate</string>
<object class="IBToOneOutletInfo" key="NS.object.0">
<string key="name">appDelegate</string>
<string key="candidateClassName">NewsBlurAppDelegate</string>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/StoryPageControl.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UserProfileViewController</string>
<string key="superclassName">UIViewController</string>

File diff suppressed because it is too large Load diff

View file

@ -92,6 +92,35 @@
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<bool key="IBUIHorizontal">NO</bool>
</object>
<object class="IBUIViewController" id="384264276">
<string key="IBUINibName">StoryPageControl</string>
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
<object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
<int key="IBUIInterfaceOrientation">1</int>
<int key="interfaceOrientation">1</int>
</object>
<object class="IBUIScreenMetrics" key="IBUISimulatedDestinationMetrics">
<string key="IBUISimulatedSizeMetricsClass">IBUIScreenMetrics</string>
<object class="NSMutableDictionary" key="IBUINormalizedOrientationToSizeMap">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<integer value="1"/>
<integer value="3"/>
</object>
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>{320, 568}</string>
<string>{568, 320}</string>
</object>
</object>
<string key="IBUITargetRuntime">IBCocoaTouchFramework</string>
<string key="IBUIDisplayName">Retina 4 Full Screen</string>
<int key="IBUIType">2</int>
</object>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<bool key="IBUIHorizontal">NO</bool>
</object>
<object class="IBUIViewController" id="766163246">
<string key="IBUINibName">LoginViewController</string>
<object class="IBUISimulatedNavigationBarMetrics" key="IBUISimulatedTopBarMetrics">
@ -315,14 +344,6 @@
</object>
<int key="connectionID">91</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">storyDetailViewController</string>
<reference key="source" ref="664661524"/>
<reference key="destination" ref="331182478"/>
</object>
<int key="connectionID">93</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">loginViewController</string>
@ -443,6 +464,22 @@
</object>
<int key="connectionID">167</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">storyPageControl</string>
<reference key="source" ref="664661524"/>
<reference key="destination" ref="384264276"/>
</object>
<int key="connectionID">172</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">storyDetailViewController</string>
<reference key="source" ref="664661524"/>
<reference key="destination" ref="331182478"/>
</object>
<int key="connectionID">173</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">appDelegate</string>
@ -579,6 +616,14 @@
</object>
<int key="connectionID">166</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">appDelegate</string>
<reference key="source" ref="384264276"/>
<reference key="destination" ref="664661524"/>
</object>
<int key="connectionID">171</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
@ -738,6 +783,11 @@
<reference key="object" ref="351846807"/>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">170</int>
<reference key="object" ref="384264276"/>
<reference key="parent" ref="0"/>
</object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
@ -781,6 +831,8 @@
<string>152.IBPluginDependency</string>
<string>165.CustomClassName</string>
<string>165.IBPluginDependency</string>
<string>170.CustomClassName</string>
<string>170.IBPluginDependency</string>
<string>3.CustomClassName</string>
<string>3.IBPluginDependency</string>
<string>39.IBPluginDependency</string>
@ -832,6 +884,8 @@
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>FeedDetailMenuViewController</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>StoryPageControl</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>NewsBlurAppDelegate</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
@ -857,7 +911,7 @@
<reference key="dict.values" ref="0"/>
</object>
<nil key="sourceID"/>
<int key="maxID">168</int>
<int key="maxID">173</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
@ -1179,17 +1233,53 @@
<object class="IBPartialClassDescription">
<string key="className">FeedDetailMenuViewController</string>
<string key="superclassName">UIViewController</string>
<object class="NSMutableDictionary" key="actions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>changeOrder:</string>
<string>changeReadFilter:</string>
</object>
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>id</string>
<string>id</string>
</object>
</object>
<object class="NSMutableDictionary" key="actionInfosByName">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>changeOrder:</string>
<string>changeReadFilter:</string>
</object>
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBActionInfo">
<string key="name">changeOrder:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo">
<string key="name">changeReadFilter:</string>
<string key="candidateClassName">id</string>
</object>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>appDelegate</string>
<string>menuTableView</string>
<string>orderSegmentedControl</string>
<string>readFilterSegmentedControl</string>
</object>
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>NewsBlurAppDelegate</string>
<string>UITableView</string>
<string>UISegmentedControl</string>
<string>UISegmentedControl</string>
</object>
</object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
@ -1198,6 +1288,8 @@
<bool key="EncodedWithXMLCoder">YES</bool>
<string>appDelegate</string>
<string>menuTableView</string>
<string>orderSegmentedControl</string>
<string>readFilterSegmentedControl</string>
</object>
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
@ -1209,6 +1301,14 @@
<string key="name">menuTableView</string>
<string key="candidateClassName">UITableView</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">orderSegmentedControl</string>
<string key="candidateClassName">UISegmentedControl</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">readFilterSegmentedControl</string>
<string key="candidateClassName">UISegmentedControl</string>
</object>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
@ -1832,6 +1932,7 @@
<string>fontSizeSegment</string>
<string>fontStyleSegment</string>
<string>largeFontSizeLabel</string>
<string>menuTableView</string>
<string>smallFontSizeLabel</string>
</object>
<object class="NSArray" key="dict.values">
@ -1840,6 +1941,7 @@
<string>UISegmentedControl</string>
<string>UISegmentedControl</string>
<string>UILabel</string>
<string>UITableView</string>
<string>UILabel</string>
</object>
</object>
@ -1851,6 +1953,7 @@
<string>fontSizeSegment</string>
<string>fontStyleSegment</string>
<string>largeFontSizeLabel</string>
<string>menuTableView</string>
<string>smallFontSizeLabel</string>
</object>
<object class="NSArray" key="dict.values">
@ -1871,6 +1974,10 @@
<string key="name">largeFontSizeLabel</string>
<string key="candidateClassName">UILabel</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">menuTableView</string>
<string key="candidateClassName">UITableView</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">smallFontSizeLabel</string>
<string key="candidateClassName">UILabel</string>
@ -2332,6 +2439,7 @@
<string>originalStoryViewController</string>
<string>shareViewController</string>
<string>storyDetailViewController</string>
<string>storyPageControl</string>
<string>userProfileViewController</string>
<string>window</string>
</object>
@ -2359,6 +2467,7 @@
<string>OriginalStoryViewController</string>
<string>ShareViewController</string>
<string>StoryDetailViewController</string>
<string>StoryPageControl</string>
<string>UserProfileViewController</string>
<string>UIWindow</string>
</object>
@ -2389,6 +2498,7 @@
<string>originalStoryViewController</string>
<string>shareViewController</string>
<string>storyDetailViewController</string>
<string>storyPageControl</string>
<string>userProfileViewController</string>
<string>window</string>
</object>
@ -2482,6 +2592,10 @@
<string key="name">storyDetailViewController</string>
<string key="candidateClassName">StoryDetailViewController</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">storyPageControl</string>
<string key="candidateClassName">StoryPageControl</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">userProfileViewController</string>
<string key="candidateClassName">UserProfileViewController</string>
@ -2883,7 +2997,7 @@
</object>
<object class="IBPartialClassDescription">
<string key="className">StoryDetailViewController</string>
<string key="superclassName">UIViewController</string>
<string key="superclassName">BaseViewController</string>
<object class="NSMutableDictionary" key="actions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
@ -3086,6 +3200,64 @@
<string key="minorKey">./Classes/StoryDetailViewController.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">StoryPageControl</string>
<string key="superclassName">UIViewController</string>
<object class="NSMutableDictionary" key="actions">
<string key="NS.key.0">changePage:</string>
<string key="NS.object.0">id</string>
</object>
<object class="NSMutableDictionary" key="actionInfosByName">
<string key="NS.key.0">changePage:</string>
<object class="IBActionInfo" key="NS.object.0">
<string key="name">changePage:</string>
<string key="candidateClassName">id</string>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>appDelegate</string>
<string>pageControl</string>
<string>scrollView</string>
</object>
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>NewsBlurAppDelegate</string>
<string>UIPageControl</string>
<string>UIScrollView</string>
</object>
</object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>appDelegate</string>
<string>pageControl</string>
<string>scrollView</string>
</object>
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBToOneOutletInfo">
<string key="name">appDelegate</string>
<string key="candidateClassName">NewsBlurAppDelegate</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">pageControl</string>
<string key="candidateClassName">UIPageControl</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">scrollView</string>
<string key="candidateClassName">UIScrollView</string>
</object>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/StoryPageControl.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UserProfileViewController</string>
<string key="superclassName">UIViewController</string>

File diff suppressed because it is too large Load diff