2013-03-31 9 views
6

Ho un'app per controller di schede a schede che sto cercando di rendere compatibile per iOS 6 e iOS 5. Per iOS 6, utilizzo il layout automatico. Ma quando provo a eseguire su iOS 5, ottengo un errore a causa del mancato riconoscimento di NSLayoutConstraints.Come caricare più file storyboard in base alla versione di iOS? (5 e 6)

Da quello che posso dire, mi viene richiesto di utilizzare uno storyboard diverso senza il layout automatico abilitato. Ho copiato il mio storyboard in uno nuovo, ma non so come impostare lo storyboard da utilizzare nel delegato dell'app.

Che cosa è il codice per fare questo?

+1

E' di valore? Mantenere 2 diversi storyboard può essere un problema. Non puoi semplicemente rilasciare iOS 5 o layout automatico? –

+0

La disattivazione automatica del layout automatico continuava a causare problemi con le visualizzazioni non allineate. Ma finì per farlo in questo modo per entrambe le versioni, visto che avrei dovuto affrontarlo usando comunque un secondo storyboard. – JimmyJammed

risposta

10

Nella vostra applicazione delegato, si dovrebbe trovare il codice come questo:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MyStoryboard" bundle:nil]; 
self.window.rootViewController = [storyboard instantiateInitialViewController]; 
[self.window makeKeyAndVisible]; 

Questo è dove è possibile aggiungere un po 'di codice per scegliere tra le diverse storyboard che hai depending on the version of iOS:

UIStoryboard *storyboard; 
NSString *currSysVer = [[UIDevice currentDevice] systemVersion]; 
if (...) { 
    storyboard = [UIStoryboard storyboardWithName:@"MyStoryboard-v5" bundle:nil]; 
} else { 
    storyboard = [UIStoryboard storyboardWithName:@"MyStoryboard-v6" bundle:nil]; 
} 
self.window.rootViewController = [storyboard instantiateInitialViewController]; 
[self.window makeKeyAndVisible]; 
+2

Works. Ma finì per usare uno storyboard e disabilitare il layout automatico e gestire tutti i re-setting di montanti e molle. La risposta è corretta per la domanda però. Grazie! – JimmyJammed

Problemi correlati