2010-04-23 53 views
0

我在mei .xib文件中做了第二个uiview。第一种观点的景观和我得到它的下面的代码一个.xib文件中的两个UIViews?

ItemController *newItem; 
newItem = [[ItemController alloc] init]; 
newItem.view..... 

我如何“激活”第二个观点,这样我就可以

newItem.view2... 

使用它是可能的吗?第二个视图是portait模式,所以它应该被隐藏,当转动ipad时,第一个视图应该被隐藏,第二个视图应该被隐藏。

感谢

回答

2

如果我正确理解你的问题,你可以使用的方法willRotateToInterfaceOrientation:duration:在UIViewController中。

之后你可以用IB 2个UIView的变量,将它们设置连接:

IBOutlet UIView *view1; 
IBOutlet UIView *view2; 

然后,在willRotateToInterfaceOrientation:duration:可以交换意见。假设你的ItemController是的UIViewController的子类,你可以有这样的事情:

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration 
{ 
    if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight) { 
     [self setView:view1]; 
    } 
    else { 
     [self setView:view2]; 
    } 
} 

当用户旋转iPad的这种方法会自动调用。

注意:请确保将shouldAutorotateToInterfaceOrientation:设置为返回YES,并且您可能必须检查方向以将视图属性设置为最初的正确视图。

编辑:我的答案是假设你有不同的布局/元素的两个视图,而不是两个视图基本上为不同的方向大小相同的事情。如果后者是这种情况,那么只用一个视图就可能有更好的方法。

1

如果您有一些IBActions与单击按钮关联或更改标签文本(位于xib上)等,您正在采取的方法会导致您遇到麻烦情况。 最好的方法是更改​​框架高度宽度和方向改变时的位置。尽管这在开始时很困难,但它可以为您节省很多麻烦。

如需协助检查Rotate UIViewController to counteract changes in UIInterfaceOrientation

希望这有助于。

感谢,

Madhup

相关问题