Toggling view modes of Views results with Display Suite
Solution that I use sometimes.


Create a content type with one or more multiple-value block reference fields.
This is like a "cheap" version of panels..
Create your views displays as blocks. One for each version.
Create a custom module to define a block that acts as the "switcher" between the two. Put some dummy content for now.
Create two nodes with the block reference.

One that has the switcher and the Views display A.
One that has the switcher and the Views display B.

Set url aliases for both nodes.
Flesh out the "switcher" block. E.g. make it keep the url query parameters. Make it look different depending on whether you are on A or B.
If you want, you can have a separate block for the exposed filters, that you also add via the blockreference.
Use Display suite or some other way to arrange the different blocks on the page.


The benefit of block reference + ds over theme regions is that you don't spam your theme regions with one-page-only blocks.