blob: f63ac86c3fa20be33afd1d376a2212122b026361 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
//
// ConnectionContainerViewController.swift
// SmartDeviceLink-ExampleSwift
//
// Copyright © 2017 smartdevicelink. All rights reserved.
//
import UIKit
class ConnectionContainerViewController: UIViewController {
@IBOutlet weak var segmentedControl: UISegmentedControl!
var viewControllers: [UIViewController] = []
var currentViewController: UIViewController?
override func viewDidLoad() {
super.viewDidLoad()
navigationController?.navigationBar.isTranslucent = false
let tcpControllerStoryboard = UIStoryboard(name: "ConnectionTCPTableViewController", bundle: nil)
let iapControllerStoryboard = UIStoryboard(name: "ConnectionIAPTableViewController", bundle: nil)
let tcpController = tcpControllerStoryboard.instantiateViewController(withIdentifier :"ConnectionTCPTableViewController")
let iapController = iapControllerStoryboard.instantiateViewController(withIdentifier :"ConnectionIAPTableViewController")
viewControllers.append(tcpController)
viewControllers.append(iapController)
segmentedControl.selectedSegmentIndex = 0
loadChildViewController(index: 0)
let leftSwipe = UISwipeGestureRecognizer(target: self, action: #selector(slideToLeftWithGestureRecognizer(gestureRecognizer:)))
let rightSwipe = UISwipeGestureRecognizer(target: self, action: #selector(slideToRightWithGestureRecognizer(gestureRecognizer:)))
leftSwipe.direction = .left
rightSwipe.direction = .right
view.addGestureRecognizer(leftSwipe)
view.addGestureRecognizer(rightSwipe)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func slideToLeftWithGestureRecognizer(gestureRecognizer: UISwipeGestureRecognizer) {
if segmentedControl.selectedSegmentIndex == 0 {
segmentedControl.selectedSegmentIndex = 1
removeFromView()
loadChildViewController(index: 1)
}
}
@IBAction func slideToRightWithGestureRecognizer(gestureRecognizer: UISwipeGestureRecognizer) {
if segmentedControl.selectedSegmentIndex == 1 {
segmentedControl.selectedSegmentIndex = 0
removeFromView()
loadChildViewController(index: 0)
}
}
// Grab changes in segmentedControl
@IBAction func indexChanged(_ sender: AnyObject) {
switch segmentedControl.selectedSegmentIndex {
case 0:
removeFromView()
loadChildViewController(index: 0)
case 1:
removeFromView()
loadChildViewController(index: 1)
default:
break
}
}
// Mark: - View functions
func removeFromView() {
let vc = self.childViewControllers.last
vc?.view.removeFromSuperview()
vc?.removeFromParentViewController()
}
func loadChildViewController(index: Int?) {
let initialViewController: UIViewController = viewControllers[index!] as! UIViewController
self.addChildViewController(initialViewController)
view.addSubview(initialViewController.view)
initialViewController.didMove(toParentViewController: self)
}
}
|