目前我有一个iOS项目,其中包含一个包含大量视图的故事板。问题是加载项目需要太长时间。有什么方法可以将我的项目分成多个故事板吗?我如何连接故事板(从一个故事板的视图到另一个故事板的视图)?
感谢
答案 0 :(得分:1)
您只是通过拆分故事板来解决问题,因为Xcode仍然必须压缩二进制文件并加载它。
我建议你做两件事:
1)简化您的编码,以便任何不必要的编码都不会减少加载时间
如果你的代码是
2)您导入的图像最有可能无法正确压缩。尽量减少尺寸,同时不影响质量。这很可能是为什么一切都需要很长时间才能加载。
Google'如何管理Xcode的图像'
答案 1 :(得分:1)
是的,您可以在项目中使用多个故事板,假设您有ABC.Storyboard和XYZ.Storyboard,现在您要从ABC.Storyboard viewcontroller加载XYZ.Storyboard viewcontroller -
目标c
UIStoryboard *sbXYZ = [UIStoryboard storyboardWithName:@"XYZ" bundle:nil];
UIViewController *vc = [sbXYZ instantiateViewControllerWithIdentifier:@"myViewController"];
vc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentViewController:vc animated:YES completion:NULL];
Swift
let sbXYZ = UIStoryboard(name: "XYZ", bundle: nil)
let vc = sbXYZ.instantiateViewControllerWithIdentifier("myViewController") as! UIViewController
self.presentViewController(vc, animated: true, completion: nil)
答案 2 :(得分:1)
是的,您可以拥有多个故事板 我目前有这个代码,希望这对你有所帮助..这是针对客观的C ..对于swift,它已经在@SantuC上面发布了。这取决于你如何配置和支持不同的方向..
- (UIStoryboard *)activeStoryBoard
{
BOOL isIPhone5 = ([[UIScreen mainScreen] bounds].size.height == 568);
BOOL isIPhone = ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone);
BOOL isIPad = ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad);
UIStoryboard *storyboard;
if (isIPhone) {
storyboard = [UIStoryboard storyboardWithName:@"Main_iPhone-3.5in" bundle:nil];
}
if (isIPhone5) {
storyboard = [UIStoryboard storyboardWithName:@"Main_iPhone-4in" bundle:nil];
}
if (isIPad) {
storyboard = [UIStoryboard storyboardWithName:@"Main_iPad" bundle:nil];
}
return storyboard;
}
希望我帮助你,快乐的编码..干杯!
答案 3 :(得分:1)
如果它真的需要很长时间才能加载,请在此处提出建议。从我的角度来看,这将是一个失败的项目。如果要进行组织,可以将其分成单个xib文件。但是,这与使用多个故事板的加载时间相同。
解决此问题的唯一方法是以编程方式编码。
答案 4 :(得分:1)
在Xcode 7中,您现在可以在故事板之间进行链接。 这是Apple doc的链接 xcdoc://?url = developer.apple.com / library / etc / redirect / xcode / devtools / 1055 / recipes / xcode_help-IB_storyboard / Chapters / AddSBReference.html
或搜索 添加对另一个故事板的引用
这说
打开故事板以在界面构建器中包含引用。
打开工作区窗口的实用程序区域
从实用程序区域中选择对象库
将Storyboard Reference对象从库中拖到画布上
配置情节提要参考的属性。
故事板参考有三个属性:
Storyboard是引用的.storyboard文件的名称。 引用的ID是引用场景的故事板ID。 Bundle是包含引用的故事板的包。