Модално представеният изглед контролер не може да се отвие

Имам подкасс на UIViewController (VC1), вграден в UINavigationController. VC1 задейства модално преминаване към друг подклас UIViewController (VC2), който е вграден в неговия собствен, различен UINavigationController. Вътре в метод на действие, задействан от UIBarButtonItem в навигационната лента на VC2, аз извиквам

[self performSegueWithIdentifier:@"SomeString" sender:nil]

което съответства на метод за отвиване във VC1. По някаква причина преходът не се случва.

Стана проблем едва след преминаването към XCode 6. Работи добре в XCode 5. Някакви идеи?


person SamConley    schedule 25.09.2014    source източник


Отговори (1)


Този проблем се повтаря и аз имам абсолютно същия проблем. За съжаление все още няма добро решение за това, освен да се върнете към стария модел delegate.

Ако подкласирате навигационния контролер на вашия родителски изглед контролер и имплементирате - (UIViewController*)viewControllerForUnwindSegueAction:(SEL)action fromViewController:(UIViewController *)fromViewController withSender:(id)sender, ще видите, че модалът всъщност търси вашия метод unwindSegue на навигационния контролер вместо контролера за изглед, който е представил модала.

Проблемът се задълбочава още повече, ако имате контролер за изглед на контейнер, тъй като методът по-горе се извиква по цялата верига на контролера до първоначалния контролер за изглед на сценария.

Тук има потенциално заобиколно решение Unwind Segue не работи в iOS 8 но има и своите недостатъци и странични ефекти.

person Rog    schedule 28.09.2014