Files
libr-ios/librx/ContainerViewController.swift
T
2015-10-24 23:17:16 +08:00

108 lines
4.0 KiB
Swift

//
// 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
myPostStoriesTableViewController.isInlineOfContainer = true
likeProfileTableViewController.isInlineOfContainer = true
faviroteProfileTableViewController.isInlineOfContainer = true
if self.isMe {
likeProfileTableViewController.postSection = .Liked
myPostStoriesTableViewController.postSection = .MyPostTimeLine
faviroteProfileTableViewController.postSection = .BookMark
} else {
myPostStoriesTableViewController.postSection = .UserPosts(userId: self.userId!)
likeProfileTableViewController.postSection = .UserLiked(userId: self.userId!)
faviroteProfileTableViewController.postSection = .UserBookMark(userId: self.userId!)
}
let staticProfileTableViewController = self.storyboard?.instantiateViewControllerWithIdentifier("GraphsUIViewController") as! GraphsUIViewController
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]) {
}
//
// func pageViewController(pageViewController:UIPageViewController, willTransitionToViewControllers pendingViewControllers: [AnyObject]) {
// configureForDisplayingViewController(pendingViewControllers.first as! UITableViewController)
// }
//
// func pageViewController(pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [AnyObject], transitionCompleted completed: Bool) {
// if !completed {
// configureForDisplayingViewController(previousViewControllers.first as! UITableViewController)
// }
// }
}