Отклонить PresentedViewController, пока он присутствует в UIPopoverController

PresentedViewController присутствует из popoverview, это код, который я использую

SearchPropertyVC *SearchPropertyVC *centerViewController = (SearchPropertyVC *)[board instantiateViewControllerWithIdentifier:@"vcSearchPropertyID"];
UINavigationController *ConDetVC = [[UINavigationController alloc] initWithRootViewController:centerViewController];
ConDetVC.modalPresentationStyle = UIModalPresentationPageSheet;
ConDetVC.modalPresentationStyle = UIModalPresentationFormSheet;
ConDetVC.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;

[self presentViewController:ConDetVC animated:YES completion:nil];
ConDetVC.view.superview.bounds = CGRectMake(0, 0, 700, 670);

контроллер открыт нормально, когда я пытался закрыть контроллер, я получаю это предупреждение

"Предупреждение. Попытка отстранения от контроллера представления во время презентации или отклонения!"

после этого, если я нажму любую кнопку, приложение упадет.

этот код я использую, чтобы отклонить представление

[self dismissViewControllerAnimated:YES completion:nil];

[self dismissViewControllerAnimated:YES completion:^{
             [(UINavigationController *)self.presentingViewController popToRootViewControllerAnimated:YES];
         }];

if (![self.presentedViewController isBeingDismissed])
            [self dismissViewControllerAnimated:YES completion:nil];

когда я пытаюсь отклонить само представление поповера, получая то же самое предупреждение

2 ответа

Решение

Сначала исправьте строку ниже.

 SearchPropertyVC *SearchPropertyVC *centerViewController = (SearchPropertyVC *)[board instantiateViewControllerWithIdentifier:@"vcSearchPropertyID"];

 SearchPropertyVC *searchPropertyVC = (SearchPropertyVC *)[board instantiateViewControllerWithIdentifier:@"vcSearchPropertyID"];

выбрать любой стиль презентации,

 ConDetVC.modalPresentationStyle = UIModalPresentationPageSheet;
 ConDetVC.modalPresentationStyle = UIModalPresentationFormSheet;

или лист страницы или лист формы.

И пока вы пытаетесь представить, используйте контроллер представления объекта, который вы хотите представить.

 [self presentViewController:ConDetVC animated:YES completion:nil]; 

А когда его уволят, просто напиши,

 [self dismissViewControllerAnimated:YES completion:^{
         // write you code here
     }];

Это поможет вам:

 [self.presentedViewController dismissViewControllerAnimated: YES completion:^(void) {
             [self presentViewController:myController animated:YES completion:nil];
    }];
Другие вопросы по тегам