-
Notifications
You must be signed in to change notification settings - Fork 0
SegmentedControl with MultipleViewController
Mohammad Azmal Hossain edited this page Sep 19, 2017
·
1 revision
import Foundation import UIKit
class MyViewController: UIViewController {
let container = UIView()
let vcGreen = GreenViewController()
let vcOrang = OrangeViewController()
let vcPurpleController = PurpleViewController()
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .white
setupSegmentedControl()
container.frame = CGRect(x: 10, y: 120, width: self.view.frame.size.width - 20, height: 400)
self.view.addSubview(container)
container.backgroundColor = .yellow
//grean vc
self.addChildViewController(vcGreen)
vcGreen.view.frame = CGRect(x: 10, y: 10, width: self.container.frame.size.width - 20, height: self.container.frame.size.height - 20)
vcGreen.view.backgroundColor = .green
self.container.addSubview(vcGreen.view)
vcGreen.didMove(toParentViewController: self)
// orange vc
self.addChildViewController(vcOrang)
vcOrang.view.frame = CGRect(x: 20, y: 20, width: self.container.frame.size.width - 40, height: self.container.frame.size.width)
self.container.addSubview(vcOrang.view)
vcOrang.didMove(toParentViewController: self)
self.addChildViewController(vcPurpleController)
vcPurpleController.view.frame = CGRect(x: 30, y: 30, width: self.container.frame.size.width - 60, height: self.container.frame.size.height)
vcPurpleController.view.backgroundColor = .purple
self.container.addSubview(vcPurpleController.view)
vcPurpleController.didMove(toParentViewController: self)
}
func setupSegmentedControl(){
let mySegmentedControl = UISegmentedControl(items: ["Green", "Orange", "Purple"])
mySegmentedControl.frame = CGRect(x: 20, y: 80, width: self.view.frame.size.width - 40, height: 30)
mySegmentedControl.selectedSegmentIndex = 2
mySegmentedControl.tintColor = .magenta
mySegmentedControl.backgroundColor = .white
mySegmentedControl.addTarget(self, action: #selector(mySegmentedControlClick(_:)), for: .valueChanged)
self.view.addSubview(mySegmentedControl)
}
func mySegmentedControlClick(_ sender: UISegmentedControl!){
if sender.selectedSegmentIndex == 0 {
UIView.animate(withDuration: 0.5, animations: {
self.vcGreen.view.isHidden = false
self.vcOrang.view.isHidden = true
self.vcPurpleController.view.isHidden = true
})
} else if sender.selectedSegmentIndex == 1 {
UIView.animate(withDuration: 0.5, animations: {
self.vcGreen.view.isHidden = true
self.vcOrang.view.isHidden = false
self.vcPurpleController.view.isHidden = true
})
} else if sender.selectedSegmentIndex == 2 {
UIView.animate(withDuration: 0.5, animations: {
self.vcGreen.view.isHidden = true
self.vcOrang.view.isHidden = true
self.vcPurpleController.view.isHidden = false
})
}
}
}
class GreenViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
}
class OrangeViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .orange
}
}
class PurpleViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
}