2011-10-07 177 views
2

我有它的UIViewController 1 UIButton(添加爲子視圖)後,我按下按鈕(見下面的圖1)在它添加另一個UIViewController 2動畫從底部到頂部後一些行動:UIViewController呈現另一個UIViewController

[[[UIApplication sharedApplication] keyWindow] addSubview:self.view]; 

它重疊UIButton,我怎麼可以添加此子視圖,它不包括UIButton(見下文pic.2)

pic.1:

enter image description here

圖片。 2:

enter image description here

+0

沒有圖片上傳? – saadnib

+0

如何設置視圖框? – beryllium

+0

不能正常工作,如果我在沒有動畫的情況下出現UIView可能會工作,需要其他方式 – LightNight

回答

2

您還沒有顯示的動畫代碼,但我相信你添加子視圖關閉屏幕,然後改變它的幀(動畫)將其滑入視圖。

改爲使用insertSubview:belowSubview:添加新子視圖,將您的按鈕作爲第二個參數傳遞。這樣,按鈕將重疊新視圖,而不是相反。 addSubview:總是將新的觀點放在其他任何人的頭頂上。

編輯

從您的意見似乎要添加第二個視圖控制器使用presentModalViewController:因此上述方法將不起作用屏幕。據我所知,如果你以這種方式呈現它,沒有辦法將原始視圖控制器中的元素保留在新視圖控制器的視圖之上。

您可能必須創建一個新的UIWindow並將其設置爲windowLevel以保留您的按鈕。這將保持它在任何下面的視圖頂部。將此窗口作爲子視圖添加到主窗口。

+0

這種方法不適用於我。我需要添加帶有動畫的UIViewController 2,而不會與其他UIViewController 1上的Button重疊。 – LightNight

+0

哦,對,所以你以模態方式呈現第二個視圖控制器,並且你希望它將第一個視圖控制器的子視圖重疊下來? – jrturton

+0

是的,這是我想要的 – LightNight

1
{ 
SecondViewController *objComing=[[SecondViewController alloc] init]; 
[self.view addSubview:objComing.view]; 

objComing.view.backgroundColor=[UIColor blueColor]; 

objComing.view.frame=CGRectMake(0,420, 320, 0); 
[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:0.5]; 

[UIView setAnimationCurve:UIViewAnimationCurveEaseIn]; 
objComing.view.frame=CGRectMake(0,0, 320, 420); 

[UIView commitAnimations]; 

}

將這個代碼在按鈕的動作,並與您的ViewController替換secondViewController。

相關問題