如何在运行时隐藏UIViewController
?
答案 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];