【问题标题】:Obj-C Alternative storyboard for landscape orientation面向横向的 Obj-C 替代故事板
【发布时间】:2015-09-09 08:38:40
【问题描述】:
快速提问。这是否可以将情节提要创建为横向?我必须改变视图中元素的一些位置,我不能使用自动布局来处理它。当然我可以用代码写出来,但我认为没有必要。我是 iOS 开发人员的新手,但我是 Android 开发人员。在那里,我们可以为每个实例创建不同的文件夹。我认为它应该是这样的:
Main.storyboard
Main_iPad.storyboard
Main_landscape.storyboard
Main_landscape_iPad.storyboard
当然,创建不同的文件不是问题。问题是:如何在我的代码/plist/等中正确链接它。
【问题讨论】:
标签:
ios
objective-c
xcode
storyboard
orientation
【解决方案1】:
警告:除非您的布局完全不同,否则不要为同一视图的横向版本创建单独的笔尖/故事板。自动布局应在方向更改时处理布局更改。
假设您有充分的理由这样做:
对于同一个视图/视图控制器,您可以有不同的 nib/故事板。就像你只有一个笔尖/故事板一样实现每一个。然后创建视图/视图控制器如下:
对于笔尖:
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];