move more stuff from AppDelegate to BlogSplitViewController

This commit is contained in:
Sami Samhuri 2015-07-04 09:52:46 -07:00
parent 3cc07aeb80
commit 70f313a0b2
3 changed files with 16 additions and 36 deletions

View file

@ -16,24 +16,17 @@
@interface AppDelegate () <UISplitViewControllerDelegate>
@property (nonatomic, readonly, strong) SamhuriNet *site;
@property (nonatomic, readonly, strong) PostsViewController *postsViewController;
@property (nonatomic, readonly, strong) EditorViewController *editorViewControllerForPhone;
@property (nonatomic, readonly, strong) EditorViewController *editorViewControllerForPad;
@end
@implementation AppDelegate
@synthesize site = _site;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[self setupCodeInjection];
BlogSplitViewController *splitViewController = (BlogSplitViewController *)self.window.rootViewController;
splitViewController.delegate = self;
splitViewController.site = [SamhuriNet new];
UINavigationController *navigationController = splitViewController.detailNavigationController;
navigationController.topViewController.navigationItem.leftBarButtonItem = splitViewController.displayModeButtonItem;
splitViewController.editorViewController.navigationItem.leftBarButtonItem = splitViewController.displayModeButtonItem;
splitViewController.editorViewController.navigationItem.leftItemsSupplementBackButton = YES;
return YES;
}
@ -93,11 +86,8 @@
#pragma mark - UISplitViewDelegate methods
- (BOOL)splitViewController:(UISplitViewController *)splitViewController collapseSecondaryViewController:(UIViewController *)secondaryViewController ontoPrimaryViewController:(UIViewController *)primaryViewController {
UINavigationController *navigationController = [secondaryViewController isKindOfClass:[UINavigationController class]]
? (UINavigationController *)secondaryViewController
: nil;
EditorViewController *editorViewController = navigationController.topViewController ? safeCast(navigationController.topViewController, [EditorViewController class]) : nil;
- (BOOL)splitViewController:(BlogSplitViewController *)splitViewController collapseSecondaryViewController:(UIViewController *)secondaryViewController ontoPrimaryViewController:(UIViewController *)primaryViewController {
EditorViewController *editorViewController = splitViewController.editorViewController;
if (!editorViewController.post) {
// Return YES to indicate that we have handled the collapse by doing nothing; the secondary controller will be discarded.
return YES;

View file

@ -4,18 +4,14 @@
//
@import UIKit;
@class PostsViewController;
@class EditorViewController;
@class SamhuriNet;
@class EditorViewController;
@interface BlogSplitViewController : UISplitViewController
@property (nonatomic, strong) SamhuriNet *site;
- (UINavigationController *)masterNavigationController;
- (UINavigationController *)detailNavigationController;
- (PostsViewController *)postsViewController;
- (EditorViewController *)editorViewControllerForPhone;
- (EditorViewController *)editorViewControllerForPad;
@property (nonatomic, readonly, strong) UINavigationController *masterNavigationController;
@property (nonatomic, readonly, strong) UINavigationController *detailNavigationController;
@property (nonatomic, readonly, strong) EditorViewController *editorViewController;
@end

View file

@ -8,13 +8,18 @@
#import "EditorViewController.h"
#import "SamhuriNet.h"
@interface BlogSplitViewController ()
@property (nonatomic, readonly, strong) PostsViewController *postsViewController;
@end
@implementation BlogSplitViewController
- (void)setSite:(SamhuriNet *)site {
_site = site;
self.postsViewController.blogController = self.site.blogController;
self.editorViewControllerForPhone.blogController = self.site.blogController;
self.editorViewControllerForPad.blogController = self.site.blogController;
self.editorViewController.blogController = self.site.blogController;
}
- (void)awakeFromNib {
@ -35,8 +40,6 @@
- (void)updateForNewTraitCollection:(UITraitCollection *)newCollection {
BOOL isCompact = newCollection.horizontalSizeClass == UIUserInterfaceSizeClassCompact;
self.postsViewController.clearsSelectionOnViewWillAppear = isCompact;
self.editorViewControllerForPad.navigationItem.leftBarButtonItem = self.displayModeButtonItem;
self.editorViewControllerForPad.navigationItem.leftItemsSupplementBackButton = YES;
}
- (UINavigationController *)masterNavigationController {
@ -51,16 +54,7 @@
return (PostsViewController *)self.masterNavigationController.viewControllers.firstObject;
}
- (EditorViewController *)editorViewControllerForPhone {
UINavigationController *navigationController = self.masterNavigationController;
if (navigationController.viewControllers.count > 1) {
navigationController = navigationController.viewControllers.lastObject;
}
EditorViewController *editorViewController = (EditorViewController *)navigationController.viewControllers.firstObject;
return editorViewController;
}
- (EditorViewController *)editorViewControllerForPad {
- (EditorViewController *)editorViewController {
return (EditorViewController *)self.detailNavigationController.viewControllers.firstObject;
}