Я пытаюсь закрыть контроллер представления после того, как SLComposer отправляет сообщение.
Для этого я использую блок завершения в методе SLComposer следующим образом:
[myPostSheet setCompletionHandler:^(SLComposeViewControllerResult result) {
switch (result) {
case SLComposeViewControllerResultCancelled:
NSLog(@"Post Canceled");
[self alertPostFail];
break;
case SLComposeViewControllerResultDone:
NSLog(@"Post Successful");
success = 1;
[self dismissUnderlyingVC ];
break;
default:
break;
}
}];
-(void)dismissUnderlyingVC {
LogDebug(@"trying to dismiss Underlying VC");
[self dismissViewControllerAnimated:YES completion:nil];
}
Однако, несмотря на то, что я поместил увольнение в блок завершения, он срабатывает до того, как SLComposer фактически уволен, не увольняет следующий VC и выдает следующую ошибку:
-[myVC dismissUnderlyingVC][Line 227] [DEBUG]
trying to dismiss Underlying VC
2018-08-28 20:23:59.579416-0400 idaru[1772:662392]
[core] SLComposeViewController skipping explicit
dismiss because isBeingDismissed is already 1
2018-08-28 20:23:59.588142-0400
idaru[1772:662392] [core] SLComposeViewController dealloc
Я понимаю, что у SLComposer нет делегата, поэтому удивляюсь, как я могу удостовериться, что он фактически был отклонен, чтобы я мог отклонить следующий VC под ним.
Заранее спасибо за любые предложения.