Я создал приложения, которые делают именно это. Лучший способ думать об этом - начать с самой узкой части, отдельных контроллеров представления. В примере с iPod это будут контроллеры для исполнителей, альбомов, списков воспроизведения, песен и т. Д. Обратите внимание, что если вы нажмете на список воспроизведения, вы попадете в список песен. Это два отдельных контроллера вида.
Каждая вкладка, которую вы видите в приложении iPod, содержит контроллер навигации. Контроллер nav оборачивает корневые контроллеры представления вкладок приложения. И тогда каждый из контроллеров навигации устанавливается как ViewControllers контроллера вкладок. Код будет выглядеть примерно так
FirstTabViewController *first = [[FirstTabViewController alloc] init...];
SecondTabViewController *second = ...;
UINavigationController *nav1 = [[UINavigationController alloc] initWithRootViewController:first];
UINavigationController *nav2 = [[UINavigationController alloc] initWithRootViewController:second];
myTabBarController.viewControllers = [NSArray arrayWithObjects:nav1, nav2, nil];
// Then make sure to release things to avoid leaks
Если вы хотите обработать переход от, скажем, Списков воспроизведения-> Список песен в выбранном списке воспроизведения, вы должны сделать это в контроллере списка воспроизведения ([self.navigationController pushViewController:theListOfSongsViewController animated:SUREWHYNOT]
).