diff --git a/Blog/AppDelegate.m b/Blog/AppDelegate.m index e31d802..22261a4 100644 --- a/Blog/AppDelegate.m +++ b/Blog/AppDelegate.m @@ -16,24 +16,17 @@ @interface AppDelegate () -@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; diff --git a/Blog/BlogSplitViewController.h b/Blog/BlogSplitViewController.h index ef546c4..0d451a5 100644 --- a/Blog/BlogSplitViewController.h +++ b/Blog/BlogSplitViewController.h @@ -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 \ No newline at end of file diff --git a/Blog/BlogSplitViewController.m b/Blog/BlogSplitViewController.m index cc142fb..b0c0350 100644 --- a/Blog/BlogSplitViewController.m +++ b/Blog/BlogSplitViewController.m @@ -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; }