iOS13適配記錄

1榨汤、模態(tài)跳轉(zhuǎn)方式:presentViewController

問題如下圖:

解決:跳轉(zhuǎn)前勿负,添加入下一句代碼即可

vc.modalPresentationStyle = UIModalPresentationFullScreen;

別添加錯位置了公浪,是即將跳轉(zhuǎn)的頁面添加,不是self

例如:

IndicationViewController *vc = [[IndicationViewController alloc] init];
vc.modalPresentationStyle = UIModalPresentationFullScreen;
[self presentViewController:vc animated:YES completion:nil];

runtime優(yōu)化presentViewController方式跳轉(zhuǎn):

1四濒、把如下代碼拷貝到項目之中即可全局解決换况,跳轉(zhuǎn)使用之前樣式
2、如果某個controller想使用新樣式盗蟆,則
vc.wg_setModalPresentationStyle = NO;

.h
#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN

@interface UIViewController (WGPresent)

// 某個控制器想用系統(tǒng)默認(rèn),則設(shè)置NO
@property (nonatomic, assign) BOOL wg_setModalPresentationStyle;

@end

NS_ASSUME_NONNULL_END
.m
#import "UIViewController+WGPresent.h"
#import <objc/runtime.h>

@implementation UIViewController (WGPresent)

+(void)load {
    
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        
        SEL oldSel = @selector(presentViewController:animated:completion:);
        SEL newSel = @selector(wg_presentViewController:animated:completion:);
        
        Method old = class_getInstanceMethod([self class], oldSel);
        Method new = class_getInstanceMethod([self class], newSel);
        if (class_addMethod([self class], oldSel, method_getImplementation(new), method_getTypeEncoding(new))) {
            
            class_replaceMethod([self class], newSel, method_getImplementation(old), method_getTypeEncoding(old));
        }else {
            
            method_exchangeImplementations(old, new);
        }
    });
}

- (void)wg_presentViewController:(UIViewController *)viewControllerToPresent animated:(BOOL)flag completion:(void (^)(void))completion {
    
    if (@available(iOS 13.0, *)) {
        
        if (viewControllerToPresent.wg_setModalPresentationStyle) {
            
            viewControllerToPresent.modalPresentationStyle = UIModalPresentationFullScreen;
        }
    }
    [self wg_presentViewController:viewControllerToPresent animated:flag completion:completion];
}

- (BOOL)wg_setModalPresentationStyle {
    
    NSNumber *obj = objc_getAssociatedObject(self, @selector(wg_setModalPresentationStyle));
    return obj ? [obj boolValue] : [self.class wg_GlobalSetModalPresentationStyle];
}

-(void)setWg_setModalPresentationStyle:(BOOL)wg_setModalPresentationStyle {
    
    objc_setAssociatedObject(self, @selector(wg_setModalPresentationStyle), @(wg_setModalPresentationStyle), OBJC_ASSOCIATION_ASSIGN);
}

//以后迭代版本,想全部用系統(tǒng)之前樣式(排除UIImagePickerController,UIAlertController)
+ (BOOL)wg_GlobalSetModalPresentationStyle {
    
    if ([self isKindOfClass:[UIImagePickerController class]] || [self isKindOfClass:[UIAlertController class]]) {
        
        return NO;
    }
    return YES;
}

@end

2戈二、全局關(guān)閉暗黑模式

1、在Info.plist 文件中喳资,添加UIUserInterfaceStyle key 名字為 User Interface Style 值為String挽拂。
2、將UIUserInterfaceStyle key 的值設(shè)置為 Light

3骨饿、單個界面不遵循暗黑模式

UIViewController與UIView 都新增一個屬性 overrideUserInterfaceStyle亏栈,將 overrideUserInterfaceStyle 設(shè)置為對應(yīng)的模式,則強制限制該元素與其子元素以設(shè)置的模式進(jìn)行展示宏赘,不跟隨系統(tǒng)模式改變進(jìn)行改變

4绒北、通過 KVC來修改一些沒有暴露出來的屬性,崩潰

[self.importCertificateNumTextFiled setValue:kGrayColor forKeyPath:@"_placeholderLabel.textColor"];

修改為

if (@available(iOS 13.0, *)) {
    self.importCertificateNumTextFiled.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"請輸入" attributes:@{NSForegroundColorAttributeName : kGrayColor}];
}else{
    [self.importCertificateNumTextFiled setValue:kGrayColor forKeyPath:@"_placeholderLabel.textColor"];
}

5察署、適配Dark Mode

6闷游、UITabBar title選中顏色被還原,出現(xiàn)問題

在設(shè)置UITabBar的地方添加如下代碼

 [[UITabBar appearance] setUnselectedItemTintColor: UIColor.grayColor];

例如我的代碼:

- (UINavigationController *)viewController:(UIViewController *)vc title:(NSString *)title nomalImg:(NSString *)imgStr tag:(NSInteger)tag{
    
    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];
    UITabBarItem *item = [[UITabBarItem alloc] initWithTitle:title image:[UIImage imageNamed:imgStr] tag:tag];
    item.selectedImage = [UIImage imageNamed:[NSString stringWithFormat:@"%@%@",imgStr,@"s"]];
    [item setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:UIColor.redColor, NSForegroundColorAttributeName, nil] forState:UIControlStateSelected];
    [[UITabBar appearance] setUnselectedItemTintColor:UIColor.grayColor];
    
    vc.tabBarItem = item;
    return nav;
}

參考:
iOS13 暗黑模式(Dark Mode)適配之OC版
iOS 13 問題解決以及蘋果登錄,暗黑模式
iOS13 DarkMode適配(一)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末贴汪,一起剝皮案震驚了整個濱河市脐往,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌扳埂,老刑警劉巖业簿,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異阳懂,居然都是意外死亡梅尤,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進(jìn)店門岩调,熙熙樓的掌柜王于貴愁眉苦臉地迎上來巷燥,“玉大人,你說我怎么就攤上這事号枕$志荆” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵葱淳,是天一觀的道長钝腺。 經(jīng)常有香客問我,道長蛙紫,這世上最難降的妖魔是什么拍屑? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮坑傅,結(jié)果婚禮上僵驰,老公的妹妹穿的比我還像新娘。我一直安慰自己唁毒,他們只是感情好蒜茴,可當(dāng)我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著浆西,像睡著了一般粉私。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上近零,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天诺核,我揣著相機與錄音抄肖,去河邊找鬼。 笑死窖杀,一個胖子當(dāng)著我的面吹牛漓摩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播入客,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼管毙,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了桌硫?” 一聲冷哼從身側(cè)響起夭咬,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎铆隘,沒想到半個月后卓舵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡咖驮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年边器,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片托修。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡忘巧,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出睦刃,到底是詐尸還是另有隱情砚嘴,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布涩拙,位于F島的核電站际长,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏兴泥。R本人自食惡果不足惜工育,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望搓彻。 院中可真熱鬧如绸,春花似錦、人聲如沸旭贬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽稀轨。三九已至扼脐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間奋刽,已是汗流浹背瓦侮。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工艰赞, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人脏榆。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓猖毫,卻偏偏與公主長得像,于是被迫代替她去往敵國和親须喂。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 每天讀一遍趁蕊,連續(xù)21天坞生,你將獲得宇宙無限的正能量 一秦東魁 從今天開始的每一天 我已經(jīng)改變成為一個全新的人 我充滿...
    秦東魁閱讀 6,274評論 0 2
  • 桌子老舊, 但可以擺得下咖啡和面包掷伙; 陽臺朝北是己,風(fēng)景不美, 但可以安靜的看書和賞雨任柜。 生活不在于你擁有多少卒废, 身處...
    牧佟閱讀 495評論 0 1
  • 親愛的爸爸:我在學(xué)校里的事情、責(zé)任可能要越來越沉重了宙地,也少有回家的機會摔认,缺乏和你溝通的機會。通過寫信來和您說說話宅粥,...
    浩漠閱讀 483評論 0 2