Your problem is the arrange you are doing.
You are using UINavigationController -> UIView -> UITabBarController
, so UITabBarController
is a subview of the UINavigationController
. When you navigate, the view you are popping is FROM THE NAVIGATION CONTROLLER, so ALL its content (including the UITabBarController
) will disappear.
You structure needs to be like this:
UITabBarController -> UINavigationController -> UIView
, which means one UINavigationController
per every tab that needs it.
For example, if you need to use push inside two tabs, the structure should be like this:
UITabBarController
| --> UINavigationController 1 --> UIView 1 --> (push segue) --> UIView 1B
| --> UINavigationController 2 --> UIView 2 --> (push segue) --> UIView 2B