IOS / Objective-C: Отключить контроллер представления после сообщения SLComposer - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь закрыть контроллер представления после того, как 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 под ним.

Заранее спасибо за любые предложения.

1 Ответ

0 голосов
/ 29 августа 2018

Ваш контроллер представления в настоящее время представляет SLComposeViewController.

Итак, когда вы звоните dismissViewControllerAnimated:completion: на self, вы на самом деле просите отклонить SLComposeViewController (который уже находится в процессе увольнения).

Попробуйте попросить presentingViewController отклонить вместо:

[self.presentingViewController dismissViewControllerAnimated:YES completion:nil];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...