2010-12-03 56 views
6

我想做一个应用程序,其中每个视图控制器(.h/.m)有2个NIB文件...一个肖像,一个景观。这是支持方向的“标准”方式还是必须手动设置方向视图?我面临的问题是,当用户翻转方向时,所有视图都会重置(因此用户必须重新输入文本字段/视图输入)。Iphone的方向和2笔尖文件

这里是我的定位方法:

- (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]; 

}

+0

你好E-man这个方法是否有效?是否在苹果应用审查时导致任何问题?我使用的方式与你所做的一样会有什么问题吗? – 2011-10-28 11:53:57

回答

7

苹果公司在题为“管理视图控制器的接口方向的部分支持他们的视图控制器编程指南在多个方向的一些不同的建议”。您可能想阅读该部分,看看他们的建议是否能更好地满足您的需求。

这就是说,我已经使用了上面在应用程序中提出的策略,它似乎工作得很好。

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

+1

我希望有一个更清洁的方法... :( – Exegesis 2010-12-23 21:41:04