When you have a link in your DotNetNuke custom module that navigates from a view control to a Edit control (see NavigateURL: How to make a link), all the other controls on the page disappear.
To get around this you can load the user controls on the page dynamically. The only problem I have with the dynamic method of loading user controls is it does not allow the portal administrator the ability to set the security (the view and edit permissions) for the dynamically loaded controls.
Sometimes this is not a big deal, but many times you have a separate user control because it truly has separate functionality and you would normally like to allow the portal administrator the ability to indicate which users and roles have access.
I really like how the Blog module handles this. The Blog module creates 5 user controls when the blog module is placed on a page. Not only does this allow each control to have separate security settings, but it allows the administrator the ability to move the arrangement of the user controls around and completely remove them.
This gives the portal administrator more control over how the module is deployed and configured. Even for in-house modules, this allows for changes that do not require you to re-code the module for unforeseen functionality.