samedi 2 mars 2019

Cleaner way of allocating subview

I have a global counter in a UIViewController that dictates what subviews will be shown in the UIViewController utilising a segmented controller. I am doing it with a bunch of if statements. Is there a cleaner way to do this? mine works but is very cumbersome.

if counter == 0 {
        simpleViewX = SimpleVC0().view
        simpleViewY = SimpleVC1().view
        shiftView.addSubview(simpleViewY)
        shiftView.addSubview(simpleViewX)
    }

    if counter == 1 {
        simpleViewX = SimpleVC2().view
        simpleViewY = SimpleVC3().view
        shiftView.addSubview(simpleViewY)
        shiftView.addSubview(simpleViewX)
    }

    if counter == 2 {
        simpleViewX = SimpleVC4().view
        simpleViewY = SimpleVC5().view
        shiftView.addSubview(simpleViewY)
        shiftView.addSubview(simpleViewX)
    }

    if counter == 3 {
        simpleViewX = SimpleVC6().view
        simpleViewY = SimpleVC7().view
        shiftView.addSubview(simpleViewY)
        shiftView.addSubview(simpleViewX)
    }

    if counter == 4 {
        simpleViewX = SimpleVC4().view
        simpleViewY = SimpleVC5().view
        shiftView.addSubview(simpleViewY)
        shiftView.addSubview(simpleViewX)
    }

    if counter == 5 {
        simpleViewX = SimpleVC8().view
        simpleViewY = SimpleVC9().view
        shiftView.addSubview(simpleViewY)
        shiftView.addSubview(simpleViewX)
    }

Segmented controller:

@IBAction func tabselected(_ sender: Any) {
    switch (sender as AnyObject).selectedSegmentIndex {
    case 0:
        shiftView.bringSubviewToFront(simpleViewX)
        break
    case 1:
        shiftView.bringSubviewToFront(simpleViewY)
        break
    case 2:
        getinfo()
        break
    default:
        break
    }
  }

Aucun commentaire:

Enregistrer un commentaire