Так что я создаю приложение на основе рецепта ipad с помощью раскадровки. Просто чтобы дать вам представление о структуре моей программы здесь является поток Просмотр контроллеров:Dismiss ViewController, который представлен через Popup
ViewController --Modally -> PreviewViewController --Modally -> RecipeViewController --Popup -> IngredientsViewController
Все это сделано в раскадровке. Я создал IngredientsViewController
и связал его с RecipeViewController
, который будет отображаться как всплывающее окно, которое отлично работает. Однако я хочу, чтобы убрать IngredientsViewController
программно (потому что я реализовал функции голосовой команды). Проблема в том, что я не могу получить доступ к IngredientsViewController
, чтобы отклонить его. (приложения, которые я еще не могу опубликовать).
Я использую следующий код, чтобы представить IngredientsViewController
программно (изнутри RecipeViewController
):
[self performSegueWithIdentifier:@"ingr" sender:nil];
, который работает прекрасно, чтобы отобразить всплывающее окно, но я не могу отпустить его. Я пытался получить доступ к нему через иерархию диспетчеров вида, но, похоже, не могу найти его, я бы предположил, что он будет на вершине стека, но, видимо, нет? Я пытался что-то вроде:
[self.presentedViewController dismissViewControllerAnimated:YES completion:nil];
Опять это вызывается из RecipeViewController
. Но это просто отклоняет RecipeViewController
, а не IngredientsViewController
, который отображается всплывающим окном.
Просто чтобы быть ясно IngredientsViewController
не UIPopoverController
, это нормальная viewController
создана в раскадровке, и его стиль будет переходить всплывающее окно связано с кнопкой в RecipeViewController
.
Любая помощь была бы принята с благодарностью. Благодаря!
Есть ли у вас какие-либо кнопки в 'IngredientsViewController' уволить? –
Нет, я хочу отклонить его изнутри RecipeViewController, я использую материал голосового управления, чтобы его отклонить (но это не проблема его только фактического метода, чтобы отклонить его. –