Blocks for Presenting and Dismissing View Controllers instead of Protocols and Delegate callbacks