У меня есть три UIViewControllers (назовем их A, B и C) в навигационном контроллере. A может переходить в B или C. B может переходить на C. Когда C закрывается, я хочу, чтобы он всегда возвращался к A, т.е. он автоматически закрывает B при закрытии C, если он открыт из B.Закрыть собственный uiviewcontroller после segue для дочернего uiviewcontroller ios?
Теперь, я попробовал используя SEGUE разматывать, так что, когда C закрывается, метод возвращения Б вызывается уволить контроллер назначения:
- (IBAction)returnFromC:(UIStoryboardSegue*)segue
{
[segue.destinationViewController dismissViewControllerAnimated:YES completion:nil];
}
я поставил точку останова в этом методе - это называется. Я проверил, что destinationController действительно B. Однако я заметил, что когда точка останова попадает, C все еще видима. После игры из точки останова C завершает работу, как ожидалось, но B все еще отображается.
Любые идеи? Спасибо заранее.
Способ на самом деле состоит в том, чтобы сделать изменчивую копию свойства 'viewControllers' контроллера навигации, удалить контроллер и затем назначить массив обратно контроллеру навигации. – mszaro
Я использовал предложение положить метод разматывания в A. Я не понимал, что раскрутка работает над несколькими VC. Большое спасибо за быстрый быстрый ответ. – iht
@iht Очень круто. Unwind чрезвычайно сложный и мощный и настраиваемый, а размещение метода разматывания - самая простая и самая основная часть этой конфигурации. Замечательно, что этой маленькой подсказки было достаточно, чтобы решить ее для вас! – matt