Unwind segue перестал работать в iOS9 › Зависание без сбоев

У меня есть приложение iOS с контроллером основного представления, которое представляет 2 модальных окна подряд.

Итак, такая последовательность:

VC1 > M1 > M2

У меня есть откат в модальном режиме 2, который я хочу использовать, чтобы вернуться к VC1. В VC1 я добавил IBAction:

-(IBAction)unwindFromM2:(UIStoryboardSegue *) unwindSegue
{

}

Все работало нормально в iOS 8 и Xcode 6. Однако в Xcode 7 и iOS 9 после вызова перехода M2 раскрутки я замечаю, что вызывается unwindFromM2, но предыдущее представление (M2) не исчезает и в основном зависает. Никаких ошибок или сбоев в Xcode. Ищу совета.

Я напрямую перетаскивал желтый значок контроллера представления на значок выхода в раскадровке (без привязки кнопки к размотке). Может ли это быть причиной? У меня есть двухэтапный диалог для выхода из контроллера представления, и я не могу напрямую перетаскивать действие, чтобы вызвать раскрутку.


person freeBeerTomorrow    schedule 29.09.2015    source источник
comment
У меня та же проблема. Компиляция Xcode 7 на устройство с iOS8 работает нормально, но при компиляции на устройство iOS9 раскрутка не работает.   -  person Ed Trujillo    schedule 02.10.2015


Ответы (1)


Существует обходной путь для этой проблемы для iOS9. Мне нужно было сделать, чтобы раскрутка фактически выталкивала контроллер представления в коде раскрутки.

#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)

- (IBAction)unwindToMyViewController:(UIStoryboardSegue *)segue {
    if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"9")) {
        [self.navigationController popViewControllerAnimated:YES];
    }
}
person Ed Trujillo    schedule 05.10.2015