1、用presentViewController而非navigator,但在iOS13里默認是可下拉折疊的對話框,這樣帶來一個界面排版的高度並不是屏幕高度,從而影響界面效果。可以將viewcontroller.modalPresentationStyle設置為UIModalPresentationFullScreen來回到原來的樣式。
2、要兼容iOS13的黑色主題色,就必須去識別當前的配色方案,可以通過viewcontroller.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark來獲取,需要添加if (@available(iOS 12.0, *))以支持iOS12以下的系統。
3、可排序tableview的右側三條杠會隨着主題色改變色彩,並不會檢測你自己設置的屏幕底色。兩種方法,1、根據上面的方法來識別主題色從而給不同的底色來適配。2、強行更改三條杠為其他圖片。
for (UIView * view in self.subviews)
{
if ([NSStringFromClass([view class]) rangeOfString:@"Reorder"].location != NSNotFound)
{
for (UIView * subview in view.subviews)
{
if ([subview isKindOfClass: [UIImageView class]])
{
((UIImageView *)subview).image = .....;
}
}
}
}
4、在其他queue里不能直接創建viewcontroller,alloc都不行,否則會被阻塞。以往我都是先創建好controller,在present的時候再跑到dispatch_async(dispatch_get_main_queue()里,但iOS13不行,創建controller時就需要在main queue里。