2017-01-18 16 views
0

搭乗/登録手順を作成したいと思います。このために、タイトルとプログレスバーとページビューを持つシーンを使用しようとしています。そのページ内では、登録シーケンスの各部分とオンボーディングの複数のシーンが表示されます。ユーザーはそれらをスライドさせることができ、進行方向バーがどれだけ近づいているかを表示します。親からSwift/XCode 8の子どもへのビューを変更しますか?

「アカウントの作成」タイトルのある領域のビューコントローラから、子(RegistrationPageViewController)からプログレスバーにアクセスするにはどうすればよいですか?これを処理する

enter image description here

enter image description here

答えて

0

良い方法は、子ビューコントローラは、親へのアクセスを持っていないので、デリゲートを使用することです。

class ParentViewController: UIViewController { 
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
     if segue.identifier == "pageViewController" { 
      let dest = segue.destination as? UIPageViewController 
      dest?.delegate = self 
     } 
    } 
} 

extension ParentViewController: UIPageViewControllerDelegate { 
    func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool) { 
     //set progress bar by analyzing pageViewController.viewControllers to see which page you're on. 
    } 
} 
1

最良の方法は、UIContainerViewを実装することです。それは自動的にあなたの親UIViewControllerにchildviewcontrollerとして追加されます。 ContainerViewはself.childViewControllersでアクセスできます。

for each in self.childViewControllers 
{ 
    if let containerView = each as? <YourContainerView_ViewControllerClass> 
    { 
     //manage containerView objects here 
    } 
} 

このUIContainerViewを再利用することもできます。

+0

どの子供が現在表示されているかをどのように判断しますか?登録シーケンスの進行と同様。次のボタンなどで順番に進む – Connorelsea

関連する問題