Вопрос о UISegmentedControl и UINavigationController - PullRequest
2 голосов
/ 20 апреля 2011

У меня проблема. Я пытаюсь создать проект с помощью Навигационного приложения.
Когда я нажимаю rightBarButtonItem, переходите к следующему представлению.
И это представление получило UISegmentedControl прямо на UINavigationBar.
enter image description here

Я использую IBAction, когда нажимаю кнопку A:

-(IBAction)backButtonPressed:(id)sender{
[self.navigationController popViewControllerAnimated:YES];}

когда появляется первый вид, я нажимаю кнопку A, чтобы вернуться к основному виду.
Если я нажму номер 2 на UISegmentedControl, он станет другим View,
и все тот же метод (- (IBAction) backButtonPressed: (id) отправитель).
Но когда я нажимаю кнопку B, она не возвращается к главному виду ..
enter image description here

как мой метод для UISegmentedControl:

-(void)showSegmentedView:(id)sender{
AView *aView = [[AView alloc] initWithNibName:@"AView" bundle:nil];
BView *bView = [[BView alloc] initWithNibName:@"BView" bundle:nil];

if(seg.selectedSegmentIndex ==0) {
    [[seg_view subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)];
    [seg_view addSubview:aView.view];
} 
else if(seg.selectedSegmentIndex ==1){
    [[seg_view subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)];
    [seg_view addSubview:bView.view];
}

}

Что-то не так ??
Заранее спасибо.

Mini

1 Ответ

3 голосов
/ 20 апреля 2011

Я предполагаю, что viewController seg_view был помещен в стек навигационного контроллера, self.navigationController в seg_view-Controller затем возвращает ваш navigationController.Однако, как и при добавлении к нему подпредставлений от других viewControllers AView / BView, эти UIViewControllers не имеют никакого соединения с контроллером seg_view или с самим навигационным контроллером.Это означает, что self.navigationController внутри нового AView / BView равен нулю!В зависимости от вашей реализации, либо backButtonPressed не вызывается, либо popViewController в AView, либо BView ничего не делает, поскольку у них нет навигационного контроллера.Я предлагаю, чтобы вы либо не использовали другие viewController (поместите 2 представления в одно и то же перо с seg_view и поменяйте их местами) или поместите их в стек навигационного контроллера.

...