2017-07-28 59 views
1

我正在开发一个IOS应用程序。我在视图寻呼机中添加了UIViewController。我想在语言改变时重新初始化它。在这里,我想从UIViewPager中移除所有的子UIViewController,并再次将所有的UIViewController添加到Viewpager中。我怎样才能做到这一点?如何从Swift 3中的父视图控制器中删除ChildViewController

示例代码

viewPager = ViewPagerController() 
viewPager.options = options 
viewPager.dataSource = self 
viewPager.delegate = self 
self.addChildViewController(viewPager) 

雨燕3.1

的Xcode 8.3.3

回答

12

经过漫长的搜索以从viewpager中删除视图控制器。我以下面的方式做到了。

if self.childViewControllers.count > 0{ 
     let viewControllers:[UIViewController] = self.childViewControllers 
     for viewContoller in viewControllers{ 
      viewContoller.willMove(toParentViewController: nil) 
      viewContoller.view.removeFromSuperview() 
      viewContoller.removeFromParentViewController() 
     } 
    } 

这里是自己,当前UIViewController它有View Pager。我需要从视图分页器中删除所有的子视图控制器。所以,我从当前UIViewController获得视图控制器列表。然后我从父视图中删除它。

+0

你知道为什么chilid viewcontrollers会留在内存中吗? –

0

对于添加和删除子视图控制器

//Remove child view controllers 
for viewController in self.childViewControllers { 
    self.remove(asChildViewController: viewController) 

} 

//Add child view controllers 
self.add(asChildViewController: ViewController) 
相关问题