mirror of
https://github.com/viq/NewsBlur.git
synced 2025-09-18 21:43:31 +00:00
Working prototype of new story traversal on iOS app.
This commit is contained in:
parent
7199fb2601
commit
c120662054
17 changed files with 2800 additions and 2563 deletions
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
20
media/ios/Classes/PagerViewController.h
Executable file
20
media/ios/Classes/PagerViewController.h
Executable 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
|
257
media/ios/Classes/PagerViewController.m
Executable file
257
media/ios/Classes/PagerViewController.m
Executable 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
|
|
@ -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;
|
||||
|
|
|
@ -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];
|
||||
|
|
32
media/ios/Classes/StoryPageControl.h
Normal file
32
media/ios/Classes/StoryPageControl.h
Normal 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
|
156
media/ios/Classes/StoryPageControl.m
Normal file
156
media/ios/Classes/StoryPageControl.m
Normal 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
|
1611
media/ios/Classes/StoryPageControl.xib
Normal file
1611
media/ios/Classes/StoryPageControl.xib
Normal file
File diff suppressed because it is too large
Load diff
|
@ -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>
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
@ -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
Loading…
Add table
Reference in a new issue