2017-07-28 60 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) 
相關問題