Fix situation where callout can be obstructed

- Callout can be obstructed by previous controls, due to the way last
control is re-added as the subview
Updates if-check to be simpler and less fragile

- String comparison does not generate compiler warning if we change the
variable name in the future
- Plain pointer comparison is more efficient than string comparison
Merge pull request #3 from jimmyti/master

double-adding a subview is changing the z-ordering, which can obstruct a callout.