2013-07-18 19 views
11

Voglio sapere qual è lo storyboard attualmente caricato, ho usato il codice qui sotto ma è comunque possibile ottenere lo storyboard principale non corrente.Come conoscere il nome dello storyboard corrente?

//This get me the Main storyboard 
[[NSBundle mainBundle].infoDictionary objectForKey:@"UIMainStoryboardFile"]; 

risposta

11

Se si lavora in una classe UIViewController che è instantied o sfocia attraverso lo storyboard il modo più semplice è:

UIStoryboard *storyBoard = self.storyboard; 

Se sei in una classe UIView che è in un UIViewController

UIResponder *responder = self; 
while (![responder isKindOfClass:[UIViewController class]]) { 
    responder = [responder nextResponder]; 
    if (nil == responder) { 
     break; 
    } 
} 
UIViewController *viewController = (UIViewController *) responder; 
UIStoryboard *storyBoard = viewController.storyboard; 
+7

come posso ottenere il nome? ? – wod

-2

solo fare questo, questo potrebbe risolvere la query

NSString *storyboardName; 
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
    storyboardName = @"iPad"; 
} else { 
    storyboardName = @"iPhone"; 
} 
UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:storyboardName bundle:nil]; 
+0

potresti non capire la mia domanda, voglio sapere che il nome non ha impostato il nome dello storyboard – wod

+0

Hai passato questo link: http://stackoverflow.com/questions/14928817/identify-which-storyboard-is -attivo –

28

Sulla risposta di Durican sopra:

All'interno di un controller della vista:

UIStoryboard * storyboard = self.storyboard; 
NSString * storyboardName = [storyboard valueForKey:@"name"]; 

(Il nome non includerà l'estensione del file ".storyboard".)

+0

Soluzione perfetta. Grazie. – VaporwareWolf

+0

Domanda. Come sei arrivato a questo? La documentazione non dice nulla sulla proprietà del nome. Neanche io vedo un modo per interrogare tutte le chiavi. Hai preso una coltellata dalle etichette IB? – VaporwareWolf

+0

Solo un'ipotesi completa, l'ho provato e ho scoperto che avevo ragione. :) – Xiphias

Problemi correlati