Используйте сегментированное управление для переключения между двумя видами - PullRequest
3 голосов
/ 22 февраля 2012

Я делаю приложение для iPhone, которое использует сегментированный элемент управления для переключения между двумя viewControllers, которые отображают различную информацию. Итак, я определил в первом представлении Controller сегментированный элемент управления, который я связал в IB с сегментированным элементом управления, который я поместил в соответствующее представление.

@interface FirstViewController : UIViewController{

//NSArray                * viewControllers;
//UINavigationController * navigationController;
IBOutlet UISegmentedControl *segment; //->segment linked in the nib of FirstViewController

}

Действие, связанное с сегментированным элементом управления, следующее:

-(IBAction)valuechanged:(id)sender{

NSInteger index = [(UISegmentedControl *)sender selectedSegmentIndex];

UIViewController *parking=[[ParkingViewController alloc] 
initWithNibName:@"ParkingViewController" bundle:nil] ;

viewControllers= [NSArray arrayWithObjects:self,parking,nil];


if(index==1){
    UIViewController * incomingViewController = [viewControllers objectAtIndex:index];
    [self presentModalViewController:incomingViewController animated:YES];
            }   
}

В этом действии я определяю, что делать, когда пользователь нажимает на сегментированный элемент управления. Здесь он загружает новый viewController с именем ParkingViewController. Проблема в том, что как только новый ParkingViewController загружен, segmentedControl исчезает, и поэтому я не могу вернуться к firstViewController.

Не знаю, как сохранить сегментированный элемент управления для обоих представлений?

Спасибо всем

Квентин

Ответы [ 2 ]

1 голос
/ 22 февраля 2012

Обычно UITabBarController используется для управления переключением между двумя или более контроллерами представления.Он останется на экране и позволит переключаться вперед и назад.

Сегментированный контроллер, который у вас есть, не может оставаться на экране, когда вы представляете модальное представление.Модальный вид займет весь экран.Кроме того, поскольку вы анимируете его на экране, копия контроллера сегментированного представления в новом представлении не будет являться тем же сегментированным элементом управления, поскольку пользователь видел, что он прокручивается на экран.

0 голосов
/ 22 февраля 2012

Я не могу вернуться к первому ViewController ... ??

Вы можете добавить UIButton и вызвать IBAction [self dismissModalViewControllerAnimated: NO];

...