Thank you for your response. In answer to your two questions, I agree that a protocol would work in place of a base class, and might at some point be a better option if there were some common behavior required by all coordinators. You could use a stack or treat the array as a stack, but then you are presuming that you are always dismissing the last coordinator created. In the sample this is true, however I wonder if this would always be the case in a more complex app? A stack would be more efficient if dismissing the last coordinator is always the case.
In regards to your question on back buttons, others posed this same concern after Soroush’s initial post. He has a follow up post specifically regarding the back button. You can review his post to see both solutions. I have not tried implementing them yet to determine a personal preference.
