//
|
// Copyright © 2018年 Zhejiang Dahua Technology Co.,Ltd. All rights reserved.
|
//
|
|
#import "UINavigationController+Dahua.h"
|
|
@implementation UINavigationController (Dahua)
|
- (UIViewController *)dh_getViewControllerByName:(NSString*)className {
|
NSArray *reverseViewControllers = [[self.viewControllers reverseObjectEnumerator] allObjects];
|
for (UIViewController *viewController in reverseViewControllers) {
|
if ([viewController isKindOfClass:NSClassFromString(className)]) {
|
return viewController;
|
}
|
}
|
|
return nil;
|
}
|
|
- (UIViewController *)dh_getViewControllerByNames:(NSArray*)classNames {
|
NSArray *reverseViewControllers = [[self.viewControllers reverseObjectEnumerator] allObjects];
|
for (UIViewController *viewController in reverseViewControllers) {
|
for (NSString *className in classNames) {
|
if ([viewController isKindOfClass:NSClassFromString(className)]) {
|
return viewController;
|
}
|
}
|
}
|
|
return nil;
|
}
|
|
- (void)dh_popToViewControllerWithClassName:(NSString*)className animated:(BOOL)animated {
|
UIViewController *vc = [self dh_getViewControllerByName:className];
|
if (vc != nil) {
|
[self popToViewController:[self dh_getViewControllerByName:className] animated:YES];
|
} else {
|
[self popToRootViewControllerAnimated:YES];
|
}
|
}
|
|
- (void)dh_popToViewControllerWithLevel:(NSInteger)level animated:(BOOL)animated {
|
NSInteger viewControllersCount = self.viewControllers.count;
|
|
if (viewControllersCount > level) {
|
|
NSInteger idx = viewControllersCount - level - 1;
|
UIViewController *viewController = self.viewControllers[idx];
|
[self popToViewController:viewController animated:animated];
|
} else {
|
|
[self popToRootViewControllerAnimated:animated];
|
}
|
}
|
|
- (void)dh_PushToViewControllerWithClassName:(NSString*)className animated:(BOOL)animated{
|
UIViewController * vc = (UIViewController *)[[NSClassFromString(className) alloc] init];
|
vc.hidesBottomBarWhenPushed = YES;
|
[self pushViewController:vc animated:animated];
|
}
|
|
- (UIViewController *)dh_getViewControllerByLevel:(NSInteger)level {
|
NSInteger viewControllersCount = self.viewControllers.count;
|
|
if (viewControllersCount > level) {
|
NSInteger idx = viewControllersCount - level - 1;
|
UIViewController *viewController = self.viewControllers[idx];
|
return viewController;
|
}
|
return nil;
|
}
|
|
@end
|