If the responsibility of dismissing this vc lies with another object, i'd prefer it if it was done through a delegate method or a block callback. That way, there is a contract between this vc and its dismisser. Eventhough this notification approach works, it isn't clear what the client needs to do to reuse the LegendVC in other apps. Thoughts?