Obj-C 用于横向的替代故事板

Obj-C Alternative storyboard for landscape orientation

快速提问。是否可以创建横向故事板?我必须更改视图中元素的某些位置,但我无法使用自动布局来处理它。当然我可以用代码写,但是我觉得没必要。我是 iOS 开发人员的新手,但我是 Android 开发人员。在那里我们可以为每个实例创建不同的文件夹。我认为它应该是这样的:

Main.storyboard

Main_iPad.storyboard

Main_landscape.storyboard

Main_landscape_iPad.storyboard

当然创建不同的文件不是问题。问题是:如何在我的 code/plist/etc.

中正确 link

警告:不要为同一视图的横向版本创建单独的 nib/storyboard,除非您的布局完全不同。自动布局应在方向更改时处理布局更改。

假设您有充分的理由这样做:

同一个 view/view 控制器可以有不同的 nibs/storyboards。就像你只有一个 nib/storyboard 一样实现每一个。然后创建view/view控制器如下:

对于笔尖:

NSString *nibName = @"NAME OF ONE OF THE NIBS";
NSArray *nibs = [[NSBundle mainBundle] loadNibNamed:nibName owner:self options:nil];
id view = [nibs firstObject]; // Ideally, iterate through the array and check class, then return the view.

故事板:

NSString *storyboardName = @"NAME OF ONE OF THE STORYBOARDS";
NSString *viewControllerIdentifier = @"VIEW CONTROLLER IDENTIFIER";
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyboardName bundle:nil];
UIViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:viewControllerIdentifier];