使UIViewController从底部出现,然后隐藏它

我需要一个UIViewController从另一个视图控制器的底部出现。

我还需要用一个button来隐藏它,回到以前的视图控制器,而不用重新加载它。

可能吗?

我build议你分别使用presentViewControllerdismissViewController但是使用这个呈现的视图控制器将被释放,这意味着它需要重新加载。

这里有一个有点怪异的方式,让我解释一下:

您可以创build要从底部显示的视图控制器实例,然后将其添加为当前视图控制器的子视图。 然后将其添加到视图层次并从屏幕外将其设置为animation。 使用以下代码作为指导:

 let vc = self.storyboard!.instantiateViewControllerWithIdentifier("MyViewController") self.addChildViewController(vc) self.view.addSubview(vc.view) vc.view.frame = CGRect(x: 0, y: self.view.frame.height, width: self.view.frame.width, height: self.view.frame.height) vc.willMoveToParentViewController(self) UIView.animateWithDuration(1) { vc.view.frame = self.view.frame } 

然后只需将animation倒转即可将其隐藏在button上。

这是可能的。 为此,您需要执行以下操作。

 let an:AnotherViewController = AnotherViewController() //the viewcontroller to present self.present(an, animated: true, completion: nil) 

以上代码是为了呈现

 self.dismiss(animated: true, completion: nil) 

上面的代码是为了解除所呈现的视图控制器。 如果您的button位于所呈现的视图控制器内部。 那么,这可以使用。

是的,这是可能的。 您可以创build一个视图控制器,并单击任何button,您可以打开另一个视图控制器,并以模态显示。 在另一个视图控制器添加一个button,点击,您可以closures该视图控制器。

在故事板中的第一个视图控制器,你可以添加button模式上的行动,并在下一个视图控制器,如果要删除你可以添加呼叫。 dismissViewControllerAnimated(true,completion:nil)