XCode多个故事板

时间:2015-05-25 09:46:15

标签: ios xcode

目前我有一个iOS项目,其中包含一个包含大量视图的故事板。问题是加载项目需要太长时间。有什么方法可以将我的项目分成多个故事板吗?我如何连接故事板(从一个故事板的视图到另一个故事板的视图)?

感谢

5 个答案:

答案 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

或搜索 添加对另一个故事板的引用

这说

  1. 打开故事板以在界面构建器中包含引用。

  2. 打开工作区窗口的实用程序区域

  3. 从实用程序区域中选择对象库

  4. 将Storyboard Reference对象从库中拖到画布上

  5. 配置情节提要参考的属性。

  6. 故事板参考有三个属性:

    Storyboard是引用的.storyboard文件的名称。 引用的ID是引用场景的故事板ID。 Bundle是包含引用的故事板的包。