-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathUISplitViewController+MasterDetailUtilities.m
More file actions
55 lines (42 loc) · 1.57 KB
/
UISplitViewController+MasterDetailUtilities.m
File metadata and controls
55 lines (42 loc) · 1.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
//
// UISplitViewController+MasterDetailUtilities.m
// xolawareUI
//
// Created by me on 2012.04.22.
#include "xolawareOpenSourceCopyright.h" // Copyright (c) 2012 xolaware.
#import "UISplitViewController+MasterDetailUtilities.h"
@implementation UISplitViewController (MasterDetailUtilities)
- (UIBarButtonItem*)masterBarButtonItem {
return self.detailUIViewController.navigationItem.leftBarButtonItem;
}
- (void)setMasterBarButtonItem:(UIBarButtonItem*)masterBarButtonItem {
self.detailUIViewController.navigationItem.leftBarButtonItem = masterBarButtonItem;
}
#pragma mark - private implementation
- (UIViewController*)topViewController:(id)controller
{
if ([controller isKindOfClass:[UITabBarController class]])
controller = [controller selectedViewController];
if ([controller respondsToSelector:@selector(topViewController)])
return [controller topViewController];
return nil;
}
#pragma mark - public implementation
- (UIViewController*)detailUIViewController {
id controller = [self topViewController:[self.viewControllers lastObject]];
assert([controller isKindOfClass:[UIViewController class]]);
return (UIViewController*)controller;
}
- (UITabBarController*)masterTabBarController {
id controller = [self.viewControllers objectAtIndex:0];
if ([controller isKindOfClass:[UITabBarController class]])
return controller;
return nil;
}
- (NSString*)masterTitle {
return [(UIViewController*)[self.viewControllers objectAtIndex:0] title];
}
- (UIViewController*)masterUIViewController {
return [self topViewController:[self.viewControllers objectAtIndex:0]];
}
@end