2017-04-23 11 views
0

PageViewControllerをインスタンス化してイメージを表示しました。 ImageViewの中最後にインスタンス化されたViewControllerを削除し、最後のTableViewControllerがアクティブになる方法

let storyboard = UIStoryboard(name: "Main", bundle: nil) 
    self.pageViewController = storyboard.instantiateViewController(withIdentifier: "articlePageViewController") as! UIPageViewController 
    self.pageViewController.dataSource = self 
    let initialContenViewController = self.pageTutorialAtIndex(0) as ArticleImageViewController 
    self.pageViewController.setViewControllers([initialContenViewController], direction: UIPageViewControllerNavigationDirection.forward, animated: true, completion: nil) 



    self.pageViewController.view.frame = CGRect(x: 0, y: 0, width: Int(self.view.frame.width), height: Int(self.view.frame.height)) 
    self.pageViewController.view.center = self.mainView.center 
    self.pageViewController.view.tag = 100 
    self.addChildViewController(self.pageViewController) 
    self.view.addSubview(self.pageViewController.view) 
    self.pageViewController.didMove(toParentViewController: self) 

ピクチャー:

Picture in ImageView

は今、私はPageviewcontrollerを削除ボタンをタップしてMaintableviewに戻りたいです。ここには、ボタンをタップしたコードがあります。

self.willMove(toParentViewController: nil) 
self.view.removeFromSuperview() 
self.removeFromParentViewController() 

イメージは削除され、Maintableviewcontrollerは表示されますがアクティブではありません。ビューのUI階層を表示すると、pageviewcontrollercontentviewが前面に表示されます。

viewhierarchy:私はそれを削除し、Maintableviewcontrollerに戻ることができますどのように

viewhierarchy

答えて

0

シンプルな、しかし、あなたのようにpageviewcontrollerを追加しました:

self.addChildViewController(self.pageViewController) //===> Step 1 
self.view.addSubview(self.pageViewController.view) //additional step required while adding 
self.pageViewController.didMove(toParentViewController: self) //===> Step 2 

試してみてください。PageViewControllerから

[self.pageViewController removeFromParentViewController]; //===> Reverse of Step 1 
    [self.pageViewController didMoveToParentViewController:self];//===> Reverse of Step 2 

コールは次のようになります:

[self removeFromParentViewController]; //===> Reverse of Step 1 
    [self didMoveToParentViewController:self.parentViewController];//===> Reverse of Step 2 
+0

おかげでこれはいけない仕事。ボタンは新しいコントローラにあり、クラスと私は新しいクラスのpageViewControllerを持っていません。 –

+0

更新された回答。 – preetam

+0

@ThomasTom:それは働いていますか? – preetam

関連する問題