After the long search to remove the view controllers from viewpager. I did it in the following way.
if self.childViewControllers.count > 0{
let viewControllers:[UIViewController] = self.childViewControllers
for viewContoller in viewControllers{
viewContoller.willMove(toParentViewController: nil)
viewContoller.view.removeFromSuperview()
viewContoller.removeFromParentViewController()
}
}
here self is , Current UIViewController which has View Pager. I need to remove all the childview controllers from the view pager. So, i get the list of view controllers from Current UIViewController. Then i removed it from the Parent view.
For swift 4.2
if self.children.count > 0{
let viewControllers:[UIViewController] = self.children
for viewContoller in viewControllers{
viewContoller.willMove(toParent: nil)
viewContoller.view.removeFromSuperview()
viewContoller.removeFromParent()
}
}
EDIT
Remove top childview controller:
func removeTopChildViewController(){
if self.children.count > 0{
let viewControllers:[UIViewController] = self.children
viewControllers.last?.willMove(toParent: nil)
viewControllers.last?.removeFromParent()
viewControllers.last?.view.removeFromSuperview()
}
}