GBA002/Delta/Game Selection/GamesViewController.swift

100 lines
3.4 KiB
Swift

//
// GamesViewController.swift
// Delta
//
// Created by Riley Testut on 10/12/15.
// Copyright © 2015 Riley Testut. All rights reserved.
//
import UIKit
import SNESDeltaCore
class GamesViewController: UIViewController
{
var pageViewController: UIPageViewController! = nil
let supportedGameTypeIdentifiers = [kUTTypeSNESGame as String]
override func viewDidLoad()
{
super.viewDidLoad()
self.automaticallyAdjustsScrollViewInsets = false
self.pageViewController = self.childViewControllers.first as? UIPageViewController
self.pageViewController.dataSource = self
self.pageViewController.delegate = self
let viewController = self.viewControllerForIndex(0)
self.pageViewController.setViewControllers([viewController], direction: .Forward, animated: false, completion: nil)
// Do any additional setup after loading the view.
}
override func viewDidLayoutSubviews()
{
super.viewDidLayoutSubviews()
let viewController = self.pageViewController.viewControllers?.first as! GamesCollectionViewController
viewController.collectionView?.contentInset.top = self.topLayoutGuide.length
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK: - Importing -
@IBAction func importFiles()
{
let gamePickerController = GamePickerController()
gamePickerController.delegate = self
self.presentGamePickerController(gamePickerController, animated: true, completion: nil)
}
}
private extension GamesViewController
{
func viewControllerForIndex(index: Int) -> GamesCollectionViewController
{
var safeIndex = index % self.supportedGameTypeIdentifiers.count
if safeIndex < 0
{
safeIndex = self.supportedGameTypeIdentifiers.count + safeIndex
}
let viewController = self.storyboard?.instantiateViewControllerWithIdentifier("gamesCollectionViewController") as! GamesCollectionViewController
viewController.gameTypeIdentifier = self.supportedGameTypeIdentifiers[safeIndex] as String
viewController.collectionView?.contentInset.top = self.topLayoutGuide.length
return viewController
}
}
extension GamesViewController: GamePickerControllerDelegate
{
func gamePickerController(gamePickerController: GamePickerController, didImportGames games: [Game])
{
print(games)
}
}
extension GamesViewController: UIPageViewControllerDelegate, UIPageViewControllerDataSource
{
func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController?
{
let index = self.supportedGameTypeIdentifiers.indexOf((viewController as! GamesCollectionViewController).gameTypeIdentifier)
let viewController = self.viewControllerForIndex(index! - 1)
return viewController
}
func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController?
{
let index = self.supportedGameTypeIdentifiers.indexOf((viewController as! GamesCollectionViewController).gameTypeIdentifier)
let viewController = self.viewControllerForIndex(index! + 1)
return viewController
}
}