2011-10-07 131 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。

相关问题