No, the problem is what you said.

When I said "this was an OK way.." I was referring to how we let mainController handle the showing of the modal but now that we have it in multiple places which are independent of the mainController, we should change it.