Move common implementations to macros

This commit is contained in:
Garrett Moon
2016-05-11 16:54:38 -07:00
parent af7a2f09d7
commit b7b8ad54fd
4 changed files with 53 additions and 93 deletions

View File

@@ -14,43 +14,13 @@
NSInteger _visibilityDepth; NSInteger _visibilityDepth;
} }
- (void)didMoveToParentViewController:(UIViewController *)parent ASVisibilityDidMoveToParentViewController;
{
[super didMoveToParentViewController:parent];
[self visibilityDepthDidChange];
}
- (void)viewWillAppear:(BOOL)animated ASVisibilityViewWillAppear;
{
[super viewWillAppear:animated];
if (_parentManagesVisibilityDepth == NO) { ASVisibilityViewDidDisappearImplementation;
_visibilityDepth = 0;
[self visibilityDepthDidChange];
}
}
- (void)viewDidDisappear:(BOOL)animated ASVisibilityDepthImplementation;
{
[super viewDidDisappear:animated];
if (_parentManagesVisibilityDepth == NO) {
_visibilityDepth = 1;
[self visibilityDepthDidChange];
}
}
- (NSInteger)visibilityDepth
{
if (self.parentViewController && _parentManagesVisibilityDepth == NO) {
_parentManagesVisibilityDepth = [self.parentViewController conformsToProtocol:@protocol(ASManagesChildVisibilityDepth)];
}
if (_parentManagesVisibilityDepth) {
return [(id <ASManagesChildVisibilityDepth>)self.parentViewController visibilityDepthOfChildViewController:self];
}
return _visibilityDepth;
}
- (void)visibilityDepthDidChange - (void)visibilityDepthDidChange
{ {

View File

@@ -14,43 +14,13 @@
NSInteger _visibilityDepth; NSInteger _visibilityDepth;
} }
- (void)didMoveToParentViewController:(UIViewController *)parent ASVisibilityDidMoveToParentViewController;
{
[super didMoveToParentViewController:parent];
[self visibilityDepthDidChange];
}
- (void)viewWillAppear:(BOOL)animated ASVisibilityViewWillAppear;
{
[super viewWillAppear:animated];
if (_parentManagesVisibilityDepth == NO) {
_visibilityDepth = 0;
[self visibilityDepthDidChange];
}
}
- (void)viewDidDisappear:(BOOL)animated ASVisibilityViewDidDisappearImplementation;
{
[super viewDidDisappear:animated];
if (_parentManagesVisibilityDepth == NO) {
_visibilityDepth = 1;
[self visibilityDepthDidChange];
}
}
- (NSInteger)visibilityDepth ASVisibilityDepthImplementation;
{
if (self.parentViewController && _parentManagesVisibilityDepth == NO) {
_parentManagesVisibilityDepth = [self.parentViewController conformsToProtocol:@protocol(ASManagesChildVisibilityDepth)];
}
if (_parentManagesVisibilityDepth) {
return [(id <ASManagesChildVisibilityDepth>)self.parentViewController visibilityDepthOfChildViewController:self];
}
return _visibilityDepth;
}
- (void)visibilityDepthDidChange - (void)visibilityDepthDidChange
{ {

View File

@@ -85,11 +85,7 @@
[super viewDidLayoutSubviews]; [super viewDidLayoutSubviews];
} }
- (void)didMoveToParentViewController:(UIViewController *)parent ASVisibilityDidMoveToParentViewController;
{
[super didMoveToParentViewController:parent];
[self visibilityDepthDidChange];
}
- (void)viewWillAppear:(BOOL)animated - (void)viewWillAppear:(BOOL)animated
{ {
@@ -104,27 +100,9 @@
} }
} }
- (void)viewDidDisappear:(BOOL)animated ASVisibilityViewDidDisappearImplementation;
{
[super viewDidDisappear:animated];
if (_parentManagesVisibilityDepth == NO) {
_visibilityDepth = 1;
[self visibilityDepthDidChange];
}
}
- (NSInteger)visibilityDepth ASVisibilityDepthImplementation;
{
if (self.parentViewController && _parentManagesVisibilityDepth == NO) {
_parentManagesVisibilityDepth = [self.parentViewController conformsToProtocol:@protocol(ASManagesChildVisibilityDepth)];
}
if (_parentManagesVisibilityDepth) {
return [(id <ASManagesChildVisibilityDepth>)self.parentViewController visibilityDepthOfChildViewController:self];
}
return _visibilityDepth;
}
- (void)visibilityDepthDidChange - (void)visibilityDepthDidChange
{ {

View File

@@ -43,3 +43,45 @@ ASLayoutRangeMode ASLayoutRangeModeForVisibilityDepth(NSUInteger visibilityDepth
- (NSInteger)visibilityDepthOfChildViewController:(UIViewController *)childViewController; - (NSInteger)visibilityDepthOfChildViewController:(UIViewController *)childViewController;
@end @end
#define ASVisibilityDepthImplementation \
- (NSInteger)visibilityDepth \
{ \
if (self.parentViewController && _parentManagesVisibilityDepth == NO) { \
_parentManagesVisibilityDepth = [self.parentViewController conformsToProtocol:@protocol(ASManagesChildVisibilityDepth)]; \
} \
\
if (_parentManagesVisibilityDepth) { \
return [(id <ASManagesChildVisibilityDepth>)self.parentViewController visibilityDepthOfChildViewController:self]; \
} \
return _visibilityDepth; \
}
#define ASVisibilityViewDidDisappearImplementation \
- (void)viewDidDisappear:(BOOL)animated \
{ \
[super viewDidDisappear:animated]; \
\
if (_parentManagesVisibilityDepth == NO) { \
_visibilityDepth = 1; \
[self visibilityDepthDidChange]; \
} \
}
#define ASVisibilityViewWillAppear \
- (void)viewWillAppear:(BOOL)animated \
{ \
[super viewWillAppear:animated]; \
\
if (_parentManagesVisibilityDepth == NO) { \
_visibilityDepth = 0; \
[self visibilityDepthDidChange]; \
} \
}
#define ASVisibilityDidMoveToParentViewController \
- (void)didMoveToParentViewController:(UIViewController *)parent \
{ \
[super didMoveToParentViewController:parent]; \
[self visibilityDepthDidChange]; \
}