в appDelegate создайте навигационный контроллер, подобный этому, я публикую пример кода
HomeScreen *homeScreenObject=[[HomeScreen alloc] initWithNibName:@"HomeScreen" bundle:nil];
self.navController =[[UINavigationController alloc] initWithRootViewController:homeScreenObject];
[homeScreenObject release];
[window addSubview:[navController view]];
// Override point for customization after application launch
[window makeKeyAndVisible];
navController это экземпляр переменной, объявленной в заголовочном файле
UINavigationController * navController;
теперь на вашем firstviewcontroller создайте IBAction и свяжите событие нажатия кнопки с этим действием и используйте эти строки в этом методе
ViewController *ViewControllerObject = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
[self.navigationController pushViewController:ViewControllerObject animated:YES];
[ViewControllerObject release];
поэтому viewController должен иметь tableView и в методе делегата tableView "didSelectRowAtIndexPath" использовать приведенный выше код для дальнейшей навигации