Non si stanno utilizzando correttamente i passaggi modali. Il modo in cui l'hai implementato, stai creando una nuova istanza di ciascun controller di visualizzazione quando segui invece di tornare all'istanza da cui provieni. Questo è il motivo per cui l'utilizzo della memoria continua ad aumentare.
Prima iOS 6, il modo corretto per gestire questa era di:
1) definiscono un metodo come viewController2Done
in vista del regolatore 1
2) in vista del regolatore 2, creare una proprietà denominata delegate
di tipo id
.
3) in prepareToSegue
di vista del regolatore 1, impostare delegate
in vista del regolatore 2 di self
4) in vista del regolatore 2, quando è il momento di tornare alla vista del regolatore 1, chiamare [delegate viewController2Done]
5) in viewController2Done
chiamata [self dismissModalViewControllerAnimated:YES]
Questo metodo funziona ancora in iOS 6, ma è disponibile anche un nuovo unwind segue
. Per usarlo, si potrebbe definire un metodo nella controller di vista 1 in questo modo:
Objective-C:
- (IBAction)unwindFromViewController2:(UIStoryboardSegue *)segue
{
NSLog(@"and we are back");
}
Swift:
@IBAction func unwindFromViewController2(segue: UIStoryboardSegue) {
print("and we are back")
}
allora si sarebbe controllo trascinare dal pulsante nel controller di visualizzazione 2 all'icona di uscita arancione nella barra sopra il controller di visualizzazione nello Storyboard. Nel pop-up, dovresti selezionare unwindFromViewController2
e voilà, il gioco è fatto.

OMG, sono sciocco. Grazie! – Piotr