How do I change the z index or stack order of UIView?

the above answer of

bringSubviewToFront(_:) sendSubviewToBack(_:)

has changed:

In Swift 3.0

view.sendSubview(toBack:yourUIView)
view.bringSubview(toFront:yourUIView)

In Swift 4.0 && Swift 5.0

view.sendSubviewToBack(yourUIView)
view.bringSubviewToFront(yourUIView)

I would recommend looking in the UIView documentation, where are several methods listed for the manipulation of the order of subviews:

bringSubviewToFront(_:)
sendSubviewToBack(_:)
removeFromSuperview()
insertSubview(_:atIndex:)
insertSubview(_:aboveSubview:)
insertSubview(_:belowSubview:)
exchangeSubviewAtIndex(_:withSubviewAtIndex:)

In your situation, you could try:

self.view.sendSubviewToBack(myGradientView)
// self is your view controller in this case.

Alternatively, because you created the myGradientView in IB, you could change the view hierarchy to change which views appeared on top. Here's a picture to illustrate:

enter image description here

Hope that helps.