我可以为iPhone和iPad(人像和风景)使用单独的故事板吗?

时间:2016-08-09 15:23:16

标签: ios storyboard

我正在开发一款支持iPhone和iPad的应用程序。 对于iPad,我们支持纵向和横向(iOS 9.0)。但出于某种原因,为了满足要求,我们必须为横向UI维护单独的故事板。这是否由Apple加入。

想要确保这符合APPLE指南。

2 个答案:

答案 0 :(得分:1)

如果您想要不同的故事板,可以在主视图控制器中尝试以下代码:

的OBJ-C

- (void) viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator {
    NSString* storyboard = (size.width > size.height ) ? @"lanscape" : @"portrait";
    UIStoryboard* mainView = [UIStoryboard storyboardWithName:storyboard bundle:nil];
    UIViewController* viewcontroller = [mainView instantiateInitialViewController]
    // remove privious view controller
    // add newViewcontroller
}

夫特

override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
    let storyboardName = (size.width > size.height ) ? "lanscape" : "portrait"

    var mainView: UIStoryboard!
    mainView = UIStoryboard(name: storyboardName, bundle: nil)
    if let newViewcontroller : UIViewController = mainView.instantiateInitialViewController() {
        // remove privious view controller
        // add newViewcontroller
    }
}

我希望它可以帮到你。

答案 1 :(得分:0)

仅当iPad需要两个方向(横向和纵向)并且每个方向的UI发生巨大变化时,才可以为iPhone和iPad使用两个单独的故事板。由于iPad的大小类别在两个方向上都是常规的,因此您仍然可以继续在一个故事板上构建UI。

在某些情况下,您无法在相同尺寸级别下继续操纵不同方向的约束或视图。这样会变得很麻烦,而且太复杂了。

因此,始终将两个故事板(对于iPad的另一个方向为1个)分开是一个更好的主意,如果两个iPad的UI都不同。

但是对于iPhone和iPad之一,您仍然可以继续使用1个故事板,因为它们继承了不同的大小类。