FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
AsyncDisplayKit/AsyncDisplayKit/ASNavigationController.m at master · SummerXZX/AsyncDisplayKit · GitHub
SummerXZX
/
AsyncDisplayKit
Public
forked from
facebookarchive/AsyncDisplayKit
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
AsyncDisplayKit
/
AsyncDisplayKit
/
ASNavigationController.m
Copy path
More file actions
More file actions
Latest commit
History
History
History
100 lines (81 loc) · 2.96 KB
Breadcrumbs
AsyncDisplayKit
/
AsyncDisplayKit
/
ASNavigationController.m
Copy path
File metadata and controls
100 lines (81 loc) · 2.96 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
//
//
ASNavigationController.m
//
AsyncDisplayKit
//
//
Created by Garrett Moon on 4/27/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.
//
#
import
"
ASNavigationController.h
"
@implementation
ASNavigationController
{
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
(viewControllerIndex == self.
viewControllers
.
count
-
1
) {
//
view controller is at the top, just return our own visibility depth.
return
[
self
visibilityDepth
];
}
else
if
(viewControllerIndex ==
0
) {
//
view controller is the root view controller. Can be accessed by holding the back button.
return
[
self
visibilityDepth
] +
1
;
}
return
[
self
visibilityDepth
] + self.
viewControllers
.
count
-
1
- viewControllerIndex;
}
#
pragma mark
- UIKit overrides
- (
NSArray
*)
popToViewController
:
(UIViewController *)
viewController
animated
:
(
BOOL
)
animated
{
NSArray
*viewControllers = [
super
popToViewController:
viewController
animated:
animated];
[
self
visibilityDepthDidChange
];
return
viewControllers;
}
- (
NSArray
*)
popToRootViewControllerAnimated
:
(
BOOL
)
animated
{
NSArray
*viewControllers = [
super
popToRootViewControllerAnimated:
animated];
[
self
visibilityDepthDidChange
];
return
viewControllers;
}
- (
void
)
setViewControllers
:
(
NSArray
*)
viewControllers
{
[
super
setViewControllers:
viewControllers];
[
self
visibilityDepthDidChange
];
}
- (
void
)
setViewControllers
:
(
NSArray
*)
viewControllers
animated
:
(
BOOL
)
animated
{
[
super
setViewControllers:
viewControllers
animated:
animated];
[
self
visibilityDepthDidChange
];
}
- (
void
)
pushViewController
:
(UIViewController *)
viewController
animated
:
(
BOOL
)
animated
{
[
super
pushViewController:
viewController
animated:
animated];
[
self
visibilityDepthDidChange
];
}
- (UIViewController *)
popViewControllerAnimated
:
(
BOOL
)
animated
{
UIViewController *viewController = [
super
popViewControllerAnimated:
animated];
[
self
visibilityDepthDidChange
];
return
viewController;
}
@end
Back
|
FazBrowse Home
|
New Git URL