user3708224
user3708224

Reputation: 1259

load UICollectionViewController in segmented control switch

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

Answers (1)

muazhud
muazhud

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

Related Questions