Ich mag würde die Lage sein, einfach [UIStoryboard mainStoryboard]
rufen entweder das iPad oder iPhone Storyboard zur Laufzeit zu erhalten.Holen Sie sich die Haupt-Storyboard zur Laufzeit
17
A
Antwort
21
Hier ist eine UIStoryboard Kategorie, die dies tun werde einfach:
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
Hier ist ein link to the gist
12
Sie können [UIStoryboard storyboardWithName:storyboardName bundle:bundle]
verwenden, wenn das Storyboard noch nicht vorhanden ist geladen.
Wenn ja, aber das wird eine neue Kopie laden.
Sie können auch viewController.storyboard
verwenden die bestehenden zu erhalten. Wenn Sie einen mainWindow
als Teil Ihrer Anwendung Delegierten haben (Sie wahrscheinlich tun), können Sie die rootViewController.storyboard
davon zu bekommen.
Etwas wie:
UIApplication *application = [UIApplication sharedApplication];
MyAppDelegate *myAppDelegate = ((MyAppDelegate *)application).delegate;
return myAppDelegate.mainWindow.rootViewController.storyboard;
Wenn nicht, könnte dies für Sie arbeiten:
UIApplication *application = [UIApplication sharedApplication];
UIWindow *backWindow = application.windows[0];
return backWindow.rootViewController.storyboard
Verwandte Themen
- 1. Holen Sie sich die TTL zur Laufzeit mit Infinispan
- 2. UIView ändert sich zur Laufzeit nicht
- 3. Holen Sie sich Fotoreferenz
- 4. So ändern Sie die Ansicht zur Laufzeit
- 5. So ändern Sie die Dateierweiterung zur Laufzeit
- 6. Holen Sie sich die letzte Checkbox
- 7. Holen Sie sich die Array-Elemente
- 8. Holen Sie sich die zuletzt gedrückte Tastaturtaste
- 9. Holen Sie sich die Daten mit Schlüsselwerten
- 10. Holen Sie sich die Datenbankversion in Meteor
- 11. Holen Sie sich die Zusammenstellung schnell wieder
- 12. Holen Sie sich die BlackBerry-Gerätenummer
- 13. Sitecore/GlassMapper Holen Sie sich die Seite
- 14. Android - Holen Sie sich die Bildquelle
- 15. Holen Sie sich die ec2-Konfigurationsinformationen
- 16. Holen Sie sich die IDs mehrerer Dateien
- 17. Holen Sie sich die Daten in Zeilen
- 18. Holen Sie sich die Konsolenprotokoll von chrome
- 19. Holen Sie sich die Subdomain als Parameter
- 20. Swift - Holen Sie sich die Länderliste
- 21. Woocommerce: Holen Sie sich die aktuelle Produktkategorie
- 22. Erstellen Sie usercontrol zur Laufzeit
- 23. die Annotationsinformationen zur Laufzeit abrufen
- 24. Verwenden Sie `EditorSceneManager.SaveScene` zur Laufzeit
- 25. Holen Sie sich das Grafikkartenmodell?
- 26. WPF + PRISM So ändern Sie die Region zur Laufzeit
- 27. Bestimmen Sie zur Laufzeit, die Schaltfläche zum Senden
- 28. XNA: Holen Sie sich ein Array/eine Liste von Ressourcen?
- 29. Holen Sie sich die aktuelle Seite http Status von Javascript
- 30. Holen Sie sich die angezeigten Felder einer MS Project-Datei
Kategorien auf Framework-Klassen sollten immer Präfixe verwenden, um Namenskollisionen zu vermeiden. –
Danke. Ich habe die Änderungen vorgenommen. –
Kühl; die Methodennamen sind jedoch eigentlich der wichtigere Teil. –