I know that I can use UITableViewController to create main view with multiple subviews. I can't use it in my case. I have many button in the main view (UIView) and when someone would press a button, then it opens a subview (UIView). I have tried to use similar solution than in table view but I got compilation error: [[self navigationController] pushViewController:targetViewController animated:YES]; I have to also implement a back button, which would be very easy to implement in table view. Shall I use initWithNibName each time the button is pressed? Could it work? I looked many Apple's examples, but I didn't find similar solution.