Files
Swiftgram/AsyncDisplayKit/ASTabBarController.m
Peter e7b34f5811 Merge commit '404795dc02aa57b167223bfaee7c380907022ca1'
# Conflicts:
#	AsyncDisplayKit.xcodeproj/project.pbxproj
#	AsyncDisplayKit/ASCellNode+Internal.h
#	AsyncDisplayKit/ASCellNode.mm
#	AsyncDisplayKit/ASCollectionNode+Beta.h
#	AsyncDisplayKit/ASCollectionNode.mm
#	AsyncDisplayKit/ASCollectionView.mm
#	AsyncDisplayKit/ASCollectionViewProtocols.h
#	AsyncDisplayKit/ASDisplayNode.mm
#	AsyncDisplayKit/ASMultiplexImageNode.h
#	AsyncDisplayKit/ASMultiplexImageNode.mm
#	AsyncDisplayKit/ASNavigationController.m
#	AsyncDisplayKit/ASNetworkImageNode.mm
#	AsyncDisplayKit/ASPagerFlowLayout.m
#	AsyncDisplayKit/ASPagerNode.m
#	AsyncDisplayKit/ASTabBarController.m
#	AsyncDisplayKit/ASTableNode.h
#	AsyncDisplayKit/ASTableNode.mm
#	AsyncDisplayKit/ASTableView.mm
#	AsyncDisplayKit/ASTableViewProtocols.h
#	AsyncDisplayKit/ASVideoNode.h
#	AsyncDisplayKit/ASVideoNode.mm
#	AsyncDisplayKit/ASVideoPlayerNode.mm
#	AsyncDisplayKit/ASViewController.mm
#	AsyncDisplayKit/Debug/ASLayoutElementInspectorCell.m
#	AsyncDisplayKit/Debug/ASLayoutElementInspectorNode.m
#	AsyncDisplayKit/Details/ASBasicImageDownloader.mm
#	AsyncDisplayKit/Details/ASBatchContext.mm
#	AsyncDisplayKit/Details/ASChangeSetDataController.h
#	AsyncDisplayKit/Details/ASChangeSetDataController.mm
#	AsyncDisplayKit/Details/ASCollectionDataController.mm
#	AsyncDisplayKit/Details/ASCollectionViewLayoutController.mm
#	AsyncDisplayKit/Details/ASCollectionViewLayoutInspector.m
#	AsyncDisplayKit/Details/ASDataController.mm
#	AsyncDisplayKit/Details/ASFlowLayoutController.h
#	AsyncDisplayKit/Details/ASFlowLayoutController.mm
#	AsyncDisplayKit/Details/ASIndexedNodeContext.mm
#	AsyncDisplayKit/Details/ASPhotosFrameworkImageRequest.h
#	AsyncDisplayKit/Details/ASPhotosFrameworkImageRequest.m
#	AsyncDisplayKit/Details/ASRangeController.mm
#	AsyncDisplayKit/Details/ASRangeControllerUpdateRangeProtocol+Beta.h
#	AsyncDisplayKit/Details/ASSectionContext.h
#	AsyncDisplayKit/Private/ASBatchFetching.m
#	AsyncDisplayKit/Private/ASCollectionView+Undeprecated.h
#	AsyncDisplayKit/Private/ASCollectionViewFlowLayoutInspector.h
#	AsyncDisplayKit/Private/ASCollectionViewFlowLayoutInspector.m
#	AsyncDisplayKit/Private/ASDisplayNode+UIViewBridge.mm
#	AsyncDisplayKit/Private/_ASPendingState.mm
#	examples/SocialAppLayout-Inverted/Sample.xcodeproj/xcshareddata/xcschemes/Sample.xcscheme
2017-02-02 11:46:47 +03:00

84 lines
2.2 KiB
Objective-C

//
// ASTabBarController.m
// AsyncDisplayKit
//
// Created by Garrett Moon on 5/10/16.
//
// Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
// This source code is licensed under the BSD-style license found in the
// LICENSE file in the root directory of this source tree. An additional grant
// of patent rights can be found in the PATENTS file in the same directory.
//
#ifndef MINIMAL_ASDK
#import <AsyncDisplayKit/ASTabBarController.h>
@implementation ASTabBarController
{
BOOL _parentManagesVisibilityDepth;
NSInteger _visibilityDepth;
}
ASVisibilityDidMoveToParentViewController;
ASVisibilityViewWillAppear;
ASVisibilityViewDidDisappearImplementation;
ASVisibilitySetVisibilityDepth;
ASVisibilityDepthImplementation;
- (void)visibilityDepthDidChange
{
for (UIViewController *viewController in self.viewControllers) {
if ([viewController conformsToProtocol:@protocol(ASVisibilityDepth)]) {
[(id <ASVisibilityDepth>)viewController visibilityDepthDidChange];
}
}
}
- (NSInteger)visibilityDepthOfChildViewController:(UIViewController *)childViewController
{
NSUInteger viewControllerIndex = [self.viewControllers indexOfObjectIdenticalTo:childViewController];
if (viewControllerIndex == NSNotFound) {
//If childViewController is not actually a child, return NSNotFound which is also a really large number.
return NSNotFound;
}
if (self.selectedViewController == childViewController) {
return [self visibilityDepth];
}
return [self visibilityDepth] + 1;
}
#pragma mark - UIKit overrides
- (void)setViewControllers:(NSArray<__kindof UIViewController *> *)viewControllers
{
[super setViewControllers:viewControllers];
[self visibilityDepthDidChange];
}
- (void)setViewControllers:(NSArray<__kindof UIViewController *> *)viewControllers animated:(BOOL)animated
{
[super setViewControllers:viewControllers animated:animated];
[self visibilityDepthDidChange];
}
- (void)setSelectedIndex:(NSUInteger)selectedIndex
{
[super setSelectedIndex:selectedIndex];
[self visibilityDepthDidChange];
}
- (void)setSelectedViewController:(__kindof UIViewController *)selectedViewController
{
[super setSelectedViewController:selectedViewController];
[self visibilityDepthDidChange];
}
@end
#endif