Dunque, andiamo con calma.
Il TabBarController ha una TabBar con 4 bottoni legati a 4 controller da caricare. Quando sei nel primo controller, c'è un bel bottone che ti apre un quinto controller non presente nella TabBar. Tu vuoi che questo controller si visualizzi, ma che la TabBar continui a vedersi? Se è cosi, dovrebbe bastare una semplice riga di codice, ovvero:
controller.modalPresentationStyle = UIModalPresentationCurrentContext;
dove controller è l'istanza delcosiddetto quinto controller, ovvero quello da mostrare.
In questo modo la modale coprirà solo il controller da cui è chiamato il present, quindi il primo controller. La tabbar dovrebbe rimanere li.
Un'altro metodo invece è fare un NavigationController che abbia come rootController il tuo primo controller. Al bottone gli fai fare un pushToViewController:QuintoController, e al primo bottone della tabbar associ il navigationController anzichè il FirstController.
Ammesso che io abbia capito il tuo reale problema, spero sia stato d'aiuto.
Ciao