I would probably do it the other way around, i.e. letting the UI class have a pointer to the non-UI/logic class. This way the logic is more independent of the concrete UI implementation and UI can be changed more freely.

Cheers,
_