2013-04-11 7 views
7

Provando la mia mano a un progetto universale, vorrei caricare una vc per identificatore dallo storyboard. C'è un modo per evitare un controllo esplicito dell'idioma quando si accede allo storyboard.Scarica lo storyboard principale nell'app universale

Questo codice brutto funziona ....

UIStoryboard *storyboard; 

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
    storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPad" bundle:nil]; 
} 
else { 
    storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil]; 
} 

UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"MyViewController"]; 

Ma che schifo. Lo storyboard principale letterale della stringa è abbastanza difficile da guardare (non è sicuro perché il progetto non può salvare le impostazioni dello storyboard principale in modo che le app possano dire [UIStoryboard mainStoryboard];) ma il controllo esplicito dell'idioma è un ponte troppo lontano.

C'è qualche intelligenza nascosta (paragonabile ai suffissi di immagine "@ 2x" che supportano i display retina) che potrebbe pulire questo codice?

risposta

16

Supponendo che si stia eseguendo il codice inviato da un altro controller di visualizzazione, è sempre possibile ottenere lo storyboard corrente tramite [self storyboard], dove self è un'istanza di un UIViewController.

+1

Grazie. Due piccioni con una fava. Vorrei poter sopravvivere due volte. – danh

+0

Grazie Desmond! – Oritm

Problemi correlati