95 lines
3.8 KiB
Objective-C
95 lines
3.8 KiB
Objective-C
//
|
||
// BaseNavigationController.m
|
||
// YUMI
|
||
//
|
||
// Created by zu on 2021/9/7.
|
||
//
|
||
|
||
#import "BaseNavigationController.h"
|
||
///Tool
|
||
#import "DJDKMIMOMColor.h"
|
||
|
||
@interface BaseNavigationController ()<UIGestureRecognizerDelegate>
|
||
|
||
@end
|
||
|
||
@implementation BaseNavigationController
|
||
-(void)dealloc{
|
||
[[NSNotificationCenter defaultCenter]removeObserver:self];
|
||
}
|
||
- (void)viewDidLoad {
|
||
[super viewDidLoad];
|
||
if ([self respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
|
||
self.interactivePopGestureRecognizer.delegate = self;
|
||
}
|
||
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(switchLanguage) name:@"kNavViewUpdateWhenLanguageUpdate" object:nil];
|
||
[self themeConfig];
|
||
if(isMSRTL()){
|
||
self.navigationBar.semanticContentAttribute = UISemanticContentAttributeForceRightToLeft;;
|
||
self.view.semanticContentAttribute = UISemanticContentAttributeForceRightToLeft;
|
||
}else{
|
||
self.navigationBar.semanticContentAttribute = UISemanticContentAttributeForceLeftToRight;;
|
||
self.view.semanticContentAttribute = UISemanticContentAttributeForceLeftToRight;
|
||
}
|
||
}
|
||
-(void)switchLanguage{
|
||
if(isMSRTL()){
|
||
self.navigationBar.semanticContentAttribute = UISemanticContentAttributeForceRightToLeft;
|
||
self.view.semanticContentAttribute = UISemanticContentAttributeForceRightToLeft;
|
||
}else{
|
||
self.navigationBar.semanticContentAttribute = UISemanticContentAttributeForceLeftToRight;
|
||
self.view.semanticContentAttribute = UISemanticContentAttributeForceLeftToRight;
|
||
}
|
||
|
||
}
|
||
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated {
|
||
if(self.topViewController == viewController) return;
|
||
if (self.childViewControllers.count > 0) {
|
||
viewController.hidesBottomBarWhenPushed = YES;
|
||
UIBarButtonItem *leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"common_nav_back"]ms_SetImageForRTL] style:UIBarButtonItemStyleDone target:self action:@selector(backClick)];
|
||
leftBarButtonItem.tintColor = [DJDKMIMOMColor mainTextColor];
|
||
viewController.navigationItem.leftBarButtonItem = leftBarButtonItem;
|
||
}
|
||
viewController.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil];
|
||
|
||
[super pushViewController:viewController animated:animated];
|
||
}
|
||
|
||
- (void)backClick{
|
||
[self popViewControllerAnimated:YES];
|
||
}
|
||
|
||
- (void)themeConfig {
|
||
self.navigationBar.shadowImage = [[UIImage alloc] init];
|
||
self.navigationBar.barTintColor = [DJDKMIMOMColor appBackgroundColor];
|
||
self.navigationBar.tintColor = [UIColor whiteColor];
|
||
self.navigationBar.translucent = NO;
|
||
self.view.backgroundColor = [DJDKMIMOMColor appBackgroundColor];
|
||
[self.navigationBar setTitleTextAttributes:@{
|
||
NSFontAttributeName:[UIFont systemFontOfSize:18 weight:UIFontWeightMedium],
|
||
NSForegroundColorAttributeName:[DJDKMIMOMColor mainTextColor]
|
||
}];
|
||
|
||
/// scrollEdgeAppearance 属性iOS15 强制适用于 所有导航器 如果为nil 则使用 standardAppearance属性中的设置,并修改为使用透明背景 @fengshuo
|
||
if (@available(iOS 15.0, *)) {
|
||
UINavigationBarAppearance *appearance = [UINavigationBarAppearance new];
|
||
appearance.titleTextAttributes = @{NSFontAttributeName:[UIFont systemFontOfSize:18 weight:UIFontWeightMedium],
|
||
NSForegroundColorAttributeName:[DJDKMIMOMColor mainTextColor]};
|
||
appearance.backgroundColor = [DJDKMIMOMColor appCellBackgroundColor];
|
||
self.navigationBar.standardAppearance = appearance;
|
||
self.navigationBar.scrollEdgeAppearance = appearance;
|
||
}
|
||
|
||
UIImage *backgroundImage = [UIImage imageNamed:@"tab_bar_bg"];
|
||
[[UITabBar appearance] setBackgroundImage:backgroundImage];
|
||
}
|
||
|
||
#pragma mark - UIGestureRecognizerDelegate
|
||
|
||
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
|
||
return YES;
|
||
}
|
||
|
||
|
||
@end
|