Я использую следующую утилиту статический метод для имитации popToRootViewController для стека модалов:
// Util.m
+ (void)popModalsToRootFrom:(UIViewController*)aVc {
if(aVc.parentViewController == nil) {
return;
}
else {
[Util popModalsToRootFrom:aVc.parentViewController]; // recursive call to this method
[aVc.parentViewController dismissModalViewControllerAnimated:NO];
}
}
Вы используете это так:
[Util popModalsToRootFrom:aViewController];
Если вы хотите что-то более продвинутое, вы можете сделать это:
+ (void)popModalsFrom:(UIViewController*)aVc popCount:(int)count {
if(aVc.parentViewController == nil || count == 0) {
return;
}
else {
[Util popModalsFrom:aVc.parentViewController popCount:count-1]; // recursive call to this method
[aVc.parentViewController dismissModalViewControllerAnimated:NO];
}
}
Затем передайте количество модалов в pop или просто -1, чтобы выдвинуться до корня.