mirror of
https://github.com/samsonjs/samhuri.net-ios.git
synced 2026-03-25 09:25:47 +00:00
move more stuff from AppDelegate to BlogSplitViewController
This commit is contained in:
parent
3cc07aeb80
commit
70f313a0b2
3 changed files with 16 additions and 36 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue