2010-04-23 87 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

相關問題