Instead of using the delegate pattern, that split the implementation in various part of the UIViewController class, you can even use closures to pass data back and forward.
By assuming that you're using the UIStoryboardSegue, in the prepareForSegue method you can easily setup the new controller in ...