ios - storyboardthat - storyboard that
Creando una vaina de cacao personalizada con un guión gráfico en ella. (4)
Actualmente tengo el mismo problema aquí. Aunque no responda la pregunta en sí, me gustaría proporcionar información adicional que probablemente sea válida en su caso, también:
Vocación
NSString *path = [bundle pathForResource:@"MyStoryboard" ofType:@"storyboard"];
NSLog(@"path: %@",path);
imprimirá
/var/mobile/Containers/Bundle/Application/_identifier_/MyApp.app/MyBundle.bundle/Base.lproj/MyStoryboard.storyboard
es decir, se encuentra el guión gráfico, pero no se puede cargar "de la forma normal".
Estoy creando un pod, y en el paquete de recursos tengo un guión gráfico (localizado).
Cuando intento crear una instancia de un guión gráfico, se produjo un error: Could not find a storyboard named ''MyStoryboard'' in bundle NSBundle
. El código se ve así:
NSURL *bundleURL = [[NSBundle mainBundle] URLForResource:@"MyBundle" withExtension:@"bundle"];
NSBundle *bundle = [NSBundle bundleWithURL:bundleURL];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MyStoryboard" bundle:bundle];
La estructura de MyBundle se ve así:
- MyBundle.bundle
- Base.lproj
- MyStoryboard.storyboard
- es.lproj
- MyStoryboard.strings
¿Se puede incluir el guión gráfico en un paquete en primer lugar?
No he visto ejemplos de Pod que incluye guiones gráficos. Si conoces algún pods que comparta su guión gráfico, avísame también.
Hay dos cosas a tener en cuenta.
Usted agrega sus recursos de pod a través de un paquete predefinido como
s.resources = ["Resources/Pod.bundle"]
en este caso, el contenido de su paquete se copiará a su proyecto de xcode sin ningún "procesamiento adicional". Esto significa que los guiones gráficos o los archivos xib no se compilarán y no estarán disponibles en su proyecto.
Puedes mencionar explícitamente los archivos de tu storyboard / nib como
s.resources = ["Resources/**/*.storyboard"]
En este caso, el guión gráfico se compilará y estará disponible en su proyecto. La desventaja de esto (en el momento de escribir esto) es que no puede usar guiones gráficos localizados, porque todos los guiones gráficos se procesarán y copiarán en la ubicación raíz de su paquete. Por lo tanto, los guiones gráficos con el mismo nombre en diferentes carpetas .lproj
se sobrescribirán.
Quieres la opción de resources
. Aquí hay algunas especificaciones que incluyen las suyas:
JCAutocompletingSearch/0.9.2/JCAutocompletingSearch.podspec
JCAutocompletingSearch/0.9.3/JCAutocompletingSearch.podspec
JCAutocompletingSearch/0.9.4/JCAutocompletingSearch.podspec
JCAutocompletingSearch/0.9.5/JCAutocompletingSearch.podspec
JCAutocompletingSearch/0.9.6/JCAutocompletingSearch.podspec
Keystone-Contacts-iOS/1.1.4/Keystone-Contacts-iOS.podspec
LumberjackConsole/2.0.0/LumberjackConsole.podspec
LumberjackConsole/2.0.1/LumberjackConsole.podspec
Mixpanel/2.1.0/Mixpanel.podspec
Mixpanel/2.2.0/Mixpanel.podspec
Mixpanel/2.2.1/Mixpanel.podspec
Mixpanel/2.2.2/Mixpanel.podspec
Mixpanel/2.2.3/Mixpanel.podspec
Mixpanel/2.3.0/Mixpanel.podspec
Mixpanel/2.3.1/Mixpanel.podspec
Mixpanel/2.3.2/Mixpanel.podspec
Mixpanel/2.3.4/Mixpanel.podspec
Mixpanel/2.3.5/Mixpanel.podspec
OpenBLE/1.0.0/OpenBLE.podspec
Resolví mi problema usando este código de línea para obtener el paquete
let bundle = Bundle(for: type(of: self))