iPhone方向和2个Nib文件

6
我正在尝试制作一个应用程序,其中每个视图控制器(.h/.m)都有两个NIB文件...一个用于竖屏,一个用于横屏。这是支持方向的“标准”方式还是必须手动编程设置方向视图?我面临的问题是,当用户翻转方向时,所有视图都会重置(因此用户必须重新输入文本字段/视图输入)。
以下是我的方向方法:
- (void) changeTheViewToPortrait:(BOOL)portrait andDuration:(NSTimeInterval)duration{

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:duration];

if(portrait) {
    [[NSBundle mainBundle] loadNibNamed:@"myview-portrait" owner:self options:nil];
    [self setupLayout];
} else{
    [[NSBundle mainBundle] loadNibNamed:@"myview-landscape" owner:self options:nil];
    [self setupLayout];
}

[UIView commitAnimations];

}


你好E-man,这个方法有效吗?使用它会在苹果应用审核时引起任何问题吗?我正在使用和你相同的方式,会有什么问题吗? - Nilesh Tupe
1个回答

7

苹果在其View Controller编程指南的“管理视图控制器界面方向”一节中提出了多种不同的支持多个方向的建议。您可以阅读该部分,看看它们的建议是否更适合您的需求。

话虽如此,我曾经在一个应用程序中使用过您上面提出的策略,它似乎运作得很好。

为了解决视图被“重置”的问题,我建议您保留对用户输入数据的引用,因为他们从控件到控件移动。然后当您的方向改变时,您可以重新填充控件,以便用户的“进度”不会丢失。


1
希望有更简洁的方式... :( - Exegesis
这个方法有效吗?在苹果应用审核时会有问题吗?我正在使用与此相同的方式,会有任何问题吗? - Nilesh Tupe
1
为什么不会有效呢?所使用的方法是公共API。 - TigerCoding

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接