diff --git a/ios/Classes/1.5/FLB2FlutterViewContainer.m b/ios/Classes/1.5/FLB2FlutterViewContainer.m index b7c49ddf5878dda9480cb7692d2d52ba33b01a62..3414dac38fdda736a98bffb2d5635220de648e88 100755 --- a/ios/Classes/1.5/FLB2FlutterViewContainer.m +++ b/ios/Classes/1.5/FLB2FlutterViewContainer.m @@ -45,6 +45,8 @@ if(self = [super initWithEngine:FLUTTER_APP.flutterProvider.engine nibName:nil bundle:nil]){ + //NOTES:在present页颿—¶ï¼Œé»˜è®¤æ˜¯å…¨å±ï¼Œå¦‚æ¤å¯ä»¥è§¦å‘底层VC的页é¢äº‹ä»¶ã€‚å¦åˆ™ä¸ä¼šè§¦å‘而导致异常 + self.modalPresentationStyle = UIModalPresentationFullScreen; [self _setup]; } return self; @@ -196,6 +198,12 @@ static NSUInteger kInstanceCounter = 0; uniqueId:self.uniqueIDString]; [[[UIApplication sharedApplication] keyWindow] endEditing:YES]; [super viewWillDisappear:animated]; + + //NOTESï¼šå› ä¸ºUIViewController在present viewåŽdismiss其页é¢çš„view disappear会å‘生在下一个页é¢view appear之åŽï¼Œä»Žè€Œè®©å½“å‰engineæŒæœ‰çš„vc inactive,æ¤å¤„å¯é©±ä½¿å…¶é‡æ–°resume + if (![self.uniqueIDString isEqualToString:[(FLB2FlutterViewContainer*)FLUTTER_VC uniqueIDString]]) + { + [FLUTTER_APP resume]; + } } @@ -207,6 +215,13 @@ static NSUInteger kInstanceCounter = 0; uniqueId:self.uniqueIDString]; [super viewDidDisappear:animated]; + //NOTES:å› ä¸ºUIViewController在present viewåŽdismiss其页é¢çš„view disappear会å‘生在下一个页é¢view appear之åŽï¼Œå¯¼è‡´å½“å‰engineæŒæœ‰çš„VC被surfaceUpdate(NO),从而销æ¯åº•层的raster。æ¤å¤„æ˜¯è€ƒè™‘åˆ°è¿™ç§æƒ…形,é‡å»ºsurface + if (FLUTTER_VC.beingPresented || self.beingDismissed || ![self.uniqueIDString isEqualToString:[(FLB2FlutterViewContainer*)FLUTTER_VC uniqueIDString]]) + { + [FLUTTER_APP resume]; + [(FLB2FlutterViewContainer*)FLUTTER_VC surfaceUpdated:YES]; + } + } - (void)installSplashScreenViewIfNecessary {