Я также использую UISegmentControl, но добавляю свои виды программно.У меня мой вид по умолчанию (сегмент 0) загружен первым в viewDidLoad rootController.Затем, основываясь на том, какой сегмент нажат, я проверяю, инициализировано ли представление, если нет, инициализирую, затем добавляю его как подпредставление.Затем удалите другой вид.У меня была похожая статья на эту тему о том, как отслеживать это, которая может вам помочь, и у меня есть код из книги «Начинающая разработка для iPhone 4», которую я использовал для своего собственного приложения.Вот фрагмент кода, с которого можно начать, если вы хотите использовать этот подход:
if (self.yellowViewController.view.superview == nil)
{
if (self.yellowViewController == nil)
{
YellowViewController *yellowController =
[[YellowViewController alloc] initWithNibName:@"YellowView"
bundle:nil];
self.yellowViewController = yellowController;
[yellowController release];
}
[blueViewController.view removeFromSuperview];
[self.view insertSubview:yellowViewController.view atIndex:0];
}
else
{
if (self.blueViewController == nil)
{
BlueViewController *blueController =
[[BlueViewController alloc] initWithNibName:@"BlueView"
bundle:nil];
self.blueViewController = blueController;
[blueController release];
}
[yellowViewController.view removeFromSuperview];
[self.view insertSubview:blueViewController.view atIndex:0];
}
По моему, я добавляю в качестве подпредставления вместо вставки его позади других представлений (у них была панель инструментов вфронт в их примере).Поэтому, если, скажем, сегмент 3 был нажат, то я бы проверил другие представления, если их суперпредставления присутствовали, удалил это представление, добавил бы мое представление.Надеюсь, это поможет.