Swiftgram/submodules/LegacyComponents/LegacyComponents/TGViewController+TGRecursiveEnumeration.m
Peter d153fe0f21 Add 'submodules/LegacyComponents/' from commit 'd5594346161c1b7f203d1e87068bbe77bcaac019'
git-subtree-dir: submodules/LegacyComponents
git-subtree-mainline: 608630530451e02e5aec48389d144dbf7a3625b9
git-subtree-split: d5594346161c1b7f203d1e87068bbe77bcaac019
2019-06-11 18:51:15 +01:00

66 lines
1.8 KiB
Objective-C

#import "TGViewController+TGRecursiveEnumeration.h"
@implementation UIViewController (TGRecursiveEnumeration)
- (void)enumerateChildViewControllersRecursivelyWithBlock:(void (^)(UIViewController *))enumerationBlock
{
if (enumerationBlock == nil)
return;
enumerationBlock(self);
for (UIViewController *childViewController in self.childViewControllers)
[childViewController enumerateChildViewControllersRecursivelyWithBlock:enumerationBlock];
}
@end
@implementation TGViewController (TGRecursiveEnumeration)
- (void)enumerateChildViewControllersRecursivelyWithBlock:(void (^)(UIViewController *))enumerationBlock
{
if (enumerationBlock == nil)
return;
if (self.associatedWindowStack.count > 0)
{
for (UIWindow *window in self.associatedWindowStack)
[window.rootViewController enumerateChildViewControllersRecursivelyWithBlock:enumerationBlock];
}
enumerationBlock(self);
for (UIViewController *childViewController in self.childViewControllers)
[childViewController enumerateChildViewControllersRecursivelyWithBlock:enumerationBlock];
}
@end
@implementation UINavigationController (TGRecursiveEnumeration)
- (void)enumerateChildViewControllersRecursivelyWithBlock:(void (^)(UIViewController *))enumerationBlock
{
if (enumerationBlock == nil)
return;
enumerationBlock(self);
[self.topViewController enumerateChildViewControllersRecursivelyWithBlock:enumerationBlock];
}
@end
@implementation UITabBarController (TGRecursiveEnumeration)
- (void)enumerateChildViewControllersRecursivelyWithBlock:(void (^)(UIViewController *))enumerationBlock
{
if (enumerationBlock == nil)
return;
enumerationBlock(self);
[self.selectedViewController enumerateChildViewControllersRecursivelyWithBlock:enumerationBlock];
}
@end