Vorrei poter semplicemente chiamare [UIStoryboard mainStoryboard]
per ottenere lo storyboard dell'iPad o dell'iPhone in fase di esecuzione.Ottenere lo storyboard principale in fase di esecuzione
17
A
risposta
21
Ecco una categoria UIStoryboard che farà proprio questo:
UIStoryboard + LDMain.h
#import <UIKit/UIKit.h>
@interface UIStoryboard (LDMain)
+ (instancetype)LDMainStoryboard;
@end
UIStoryboard + LDMain.m
#import "UIStoryboard+LDMain.h"
UIStoryboard *_mainStoryboard = nil;
@implementation UIStoryboard (LDMain)
+ (instancetype)LDMainStoryboard {
if (!_mainStoryboard) {
NSBundle *bundle = [NSBundle mainBundle];
NSString *storyboardName = [bundle objectForInfoDictionaryKey:@"UIMainStoryboardFile"];
_mainStoryboard = [UIStoryboard storyboardWithName:storyboardName bundle:bundle];
}
return _mainStoryboard;
}
@end
Ecco un link to the gist
12
Puoi utilizzare [UIStoryboard storyboardWithName:storyboardName bundle:bundle]
se lo storyboard non è già stato caricato.
Se ha, tuttavia, questo caricherà una nuova copia.
È inoltre possibile utilizzare viewController.storyboard
per ottenere quello esistente. Se si dispone di un numero mainWindow
come delegato dell'applicazione (probabilmente lo si fa), è possibile ottenere lo rootViewController.storyboard
di quello.
Qualcosa di simile:
UIApplication *application = [UIApplication sharedApplication];
MyAppDelegate *myAppDelegate = ((MyAppDelegate *)application).delegate;
return myAppDelegate.mainWindow.rootViewController.storyboard;
In caso contrario, questo potrebbe funzionare per voi:
UIApplication *application = [UIApplication sharedApplication];
UIWindow *backWindow = application.windows[0];
return backWindow.rootViewController.storyboard
Problemi correlati
- 1. ios modifica lo storyboard del controller di visualizzazione predefinito in fase di esecuzione
- 2. Scarica lo storyboard principale nell'app universale
- 3. Ottenere l'output di un processo in fase di esecuzione
- 4. Rileva lo spoofing UDID sull'iPhone in fase di esecuzione
- 5. Leggi lo spazio heap massimo in fase di esecuzione
- 6. Come ottenere stringhe di storyboard localizzate dopo il passaggio alla lingua in fase di esecuzione in IOS?
- 7. Come ottenere il tipo generico in fase di esecuzione?
- 8. Android | Ottenere la versione OkHTTP Biblioteca in fase di esecuzione
- 9. ottenere la versione artefatto Maven in fase di esecuzione
- 10. Come ottenere il DiscriminatorValue in fase di esecuzione
- 11. Ottieni binding IIS in fase di esecuzione
- 12. Storyboard + localizzazione base + file .strings non localizza in fase di esecuzione
- 13. Misurazione dei controlli creati in fase di esecuzione in WPF
- 14. Come posso ottenere lo stage principale in un'applicazione JavaFX?
- 15. Estendere classe in fase di esecuzione
- 16. Aggiungere animazione in fase di esecuzione
- 17. scegliere una monade in fase di esecuzione
- 18. Caricamento di 2 versioni di assembly in fase di esecuzione
- 19. Sostituisci bean in fase di esecuzione
- 20. esclusione in fase di esecuzione __setattr__
- 21. C# WPF aggiunge il controllo alla finestra principale in fase di esecuzione
- 22. Impostazione tipo generico in fase di esecuzione
- 23. Modifica proprietà log4j in fase di esecuzione
- 24. Modifiche al vtable in fase di esecuzione
- 25. Castle Windsor Resolve in fase di esecuzione
- 26. javafx cambia css in fase di esecuzione
- 27. metodo call in fase di esecuzione
- 28. Rileva versione Python in fase di esecuzione
- 29. Modifica implementazione/classe in fase di esecuzione
- 30. Cambiare l'orientamento in fase di esecuzione
Categorie di classi del framework dovrebbe sempre usare prefissi per evitare conflitti di nomi. –
Grazie. Ho apportato le modifiche. –
Fresco; i nomi dei metodi sono in realtà la parte più importante, però. –