cybmeta is right you cannot trust server-side browser detection
<div class="portrait">
wp_nav_menu( array('menu' => 'primary' ) );
</div>
<div class="mobile">
wp_nav_menu( array('menu' => 'mobile' ) );
</div>
<div class="primary">
wp_nav_menu( array('menu' => 'primary' ) );
</div>
and use media queries to hide and display menu