// // ContainerViewController.swift // librx // // Created by Yunlong Zheng on 15/10/12. // Copyright © 2015年 librx. All rights reserved. // import UIKit class ContainerViewController: UIPageViewController { var isMe:Bool = true var userId:Int? lazy var _controllers: [UIViewController] = { let myPostStoriesTableViewController = self.storyboard?.instantiateViewControllerWithIdentifier("StoriesTableViewController") as! StorysTableViewController let faviroteProfileTableViewController = self.storyboard?.instantiateViewControllerWithIdentifier("StoriesTableViewController") as! StorysTableViewController let likeProfileTableViewController = self.storyboard?.instantiateViewControllerWithIdentifier("StoriesTableViewController") as! StorysTableViewController let staticProfileTableViewController = self.storyboard?.instantiateViewControllerWithIdentifier("GraphsUIViewController") as! GraphsUIViewController if self.isMe { likeProfileTableViewController.postSection = .Liked myPostStoriesTableViewController.postSection = .MyPostTimeLine faviroteProfileTableViewController.postSection = .BookMark staticProfileTableViewController.userId = LocalStore.accessUserId()! } else { myPostStoriesTableViewController.postSection = .UserPosts(userId: self.userId!) likeProfileTableViewController.postSection = .UserLiked(userId: self.userId!) faviroteProfileTableViewController.postSection = .UserBookMark(userId: self.userId!) staticProfileTableViewController.userId = self.userId! } return [myPostStoriesTableViewController, likeProfileTableViewController, faviroteProfileTableViewController, staticProfileTableViewController] }() override func viewDidLoad() { super.viewDidLoad() turnToPage(0) } func turnToPage(index: Int) { let controller = _controllers[index] let direction = UIPageViewControllerNavigationDirection.Forward setViewControllers([controller], direction: direction, animated: false) { (completion) -> Void in } } func configureForDisplayingViewController(controller: UITableViewController) { } } extension ContainerViewController : UIPageViewControllerDataSource { func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? { let index = (_controllers as NSArray).indexOfObject(viewController) if index > 0 { return _controllers[index - 1] } return nil } func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? { let index = (_controllers as NSArray).indexOfObject(viewController) if index < _controllers.count - 1 { return _controllers[index + 1] } return nil } } extension ContainerViewController : UIPageViewControllerDelegate { func pageViewController(pageViewController: UIPageViewController, willTransitionToViewControllers pendingViewControllers: [UIViewController]) { } }