iOS:在现有的UIViewController上添加一个UIViewController

我想制作一些popup式菜单。 我有一个VC,并希望另一个VCanimation,并显示在上面的第一个VC(第二个VC必须是一个小一点的屏幕,所以第一个VC必须可见)。

我读了关于提交VC的苹果文档 ,但是这不是我想要的。 给我一条前进的道路。 这一定是可能的,我觉得不是很难做到。 谢谢:)

首先,可以在VC之上呈现一个VC。 但是,基于你的问题,我认为推出一个UIView比另一个VC更好。

它要在VC2上面呈现一个VC1,您应该创build一个根控制器,一个具有VC1的VC1,然后使用根控制器而不是VC1呈现VC2。 请参阅下面的代码。

//In View Controller 1 VC1.m AppDelegate *app = [UIApplication sharedApplication]; UIViewController *rootVC = app.window.rootViewController; [rootVC presentModalViewController:VC2 animate:NO]; 

但是,我认为,如果你想提出另一种观点的观点,并希望观点有自己的控制器。 您可以将控制器作为子View Controller添加到当前viewController,并在当前viewController上显示其视图。 看到这个:

  // In VC1.m [self addChildViewController:VC2]; [self addSubView:VC2.view];// You can do some animation here when the vc2.view show 

看看是否可以帮助:)

如何删除VC? 我不太确定你想做什么? 如果你想删除它,不要再次使用,请尝试使用VC2。 如果要隐藏视图,并在菜单button被按下时再次显示。 你可以试试:

  //First if you want to just hide it VC2.view.hidden = YES; // And the button you set, you can try if(VC2 != nil) // it means the VC2 is created { if(VC2.view.hidden){VC2.view.hidden = NO;} else {VC.view.hidden = YES} }else{ myViewC2 VC2 = [[myViewC2 alloc] init]; [self addChildViewController:VC2]; [self addSubView:VC2.view]; } //It's just a solution, you can also do some animation before its hidden 

首先,ViewControllers本身不“animation”,我想你是UIViewControllerUIView混淆。

UIView显示信息并对触摸作出响应,但他们转发“该做什么”触摸以及更新它们显示给UIViewControllers的责任。

如果你有一个视图,你在一个视图控制器中编写/从nib加载视图,另一个在另一个视图控制器中,并且你想同时显示这两个视图,你可以考虑把它们混合到一个UIViewController中,或者使用childViewControllers 。 在后一种情况下, 我几天前回答了一个非常类似的问题 。