如何在运行时隐藏Viewcontroller?

时间:2011-03-01 12:30:26

标签: iphone uiviewcontroller

如何在运行时隐藏UIViewController

4 个答案:

答案 0 :(得分:6)

你真正的意思是什么?

UIViewController本身不是“可见的”...... 但它是它的观点(一个普通的UIView),所以只需将它隐藏的视图改为YES:

yourUIViewController.view.hidden = YES;

答案 1 :(得分:3)

使用来自Controller的动画(我假设你有一个实现UIViewController协议的类)。

在你的UIViewController类中声明一个类似这样的方法:

- (void) hide
{
    [UIView animateWithDuration:0.2 //begin animation
                          delay:0.1
                        options:UIViewAnimationCurveEaseIn 
                     animations:^
                     {
                     // This subview is initialized at the top of the screen 
                     [mySubview setFrame:CGRectOffset([mySubview frame], 0, -mySubview.frame.size.height)];
                     // Do the same for Every other subview you want to animate off
                     } 
                     completion:nil];
}

这会将您的视图设置为屏幕动画。它会给你一个更好(平滑)的效果,而不仅仅是让它们“隐藏”。

从超级视图中,您只需调用控制器隐藏方法,一切都会顺利消失!

注意:您还可以使用其他动画曲线...可以在“UIViewAnimationCurve”下找到列表和说明here

答案 2 :(得分:2)

如果你想隐藏viewcontroller的视图,请尝试

viewController.view.hidden = YES;

答案 3 :(得分:1)

隐藏当前uiviewcontroller的代码

[self dismissViewControllerAnimated:YES completion:nil];