Reputation: 1259
I would like to implement a segmented controller that on switch loads a UICollectionViewController into view. In addition, I am also wondering how to get the app to show this UICollectionViewController on app ViewDidLoad method. See code below. Thanks in advance!
var segmentedController: UISegmentedControl!
override func viewDidLoad() {
super.viewDidLoad()
let items = ["Label A", "Label B"]
segmentedController = UISegmentedControl(items: items)
navigationItem.titleView = segmentedController
segmentedController.selectedSegmentIndex = 0
// function to handle Value Changed events
segmentedController.addTarget(self, action: #selector(HomeController.segmentedValueChanged(_:)), for: .valueChanged)
}
// reference to collectionViewController
var travelersFeedCollectionVC: UICollectionViewController!
func segmentedValueChanged(_ sender:UISegmentedControl!)
{
print("Selected Segment Index is : \(sender.selectedSegmentIndex)")
switch segmentedController.selectedSegmentIndex {
case 0:
self.view.isHidden = true
// load travelersFeedCollectionVC here.............
case 1:
self.view.isHidden = false
default: // Do nothing
break
}
}
Upvotes: 0
Views: 238
Reputation: 954
You can use container view technique. Basically you need to define the main container view. Insider the container view, you can easily show any view controller that you want. Please refer this tutorial to learn more about this technique. Link - https://guides.codepath.com/ios/Container-View-Controllers-Quickstart
Upvotes: 1