Навигация по кнопке "Назад" изменяет функциональность

У меня есть 3 контроллера вида: A, B и C. A является начальным и имеет 2 кнопки: одна перенаправляет на B, а вторая на C. Когда нажимается B, а кнопка в пределах B нажимается, пользователь перенаправляется на C. Теперь на панели навигации в C, когда я нажимаю кнопку "назад", я хочу, чтобы меня всегда перенаправляли на A, а не на B. Возможно ли это?

Это базовая функциональность, которую я хочу достичь:

а)

A->B->C      C back to A

б)

A->C         C back to A

4 ответа

Решение
for (UIViewController *controller in self.navigationController.viewControllers)
{
    if ([controller isKindOfClass:[A class]])
    {
        [self.navigationController popToViewController:controller
                                              animated:YES];
        break;
    }
}

Единственный способ - заменить кнопку "Назад" пользовательской кнопкой.

Попробуйте это, заменив кнопку возврата

 UIBarButtonItem *btnBack = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:self action:@selector(clkBack)];
    self.navigationItem.leftBarButtonItem = btnBack;

    - (void)clkBack{
        //your view controllers
    }

Вы можете добиться этого с контроллером presentview в качестве модального view.first от a, если первая кнопка нажата присутствует b view.if если нажата вторая кнопка присутствует c взглядом и в контроллере представления c поместите кнопку назад и добавьте делегатов и внедрите делегат в контроллере представления.и вам придется отклонить одно представление за другим в контроллере представления.

После прочтения того, что вы сказали, я думаю, что вы имели в виду реализацию пользовательских действий для каждой кнопки. Как я это сделал (в Swift):

@IBAction func pressButton(sender : UIButton){

 var SecondView :ViewController2
 SecondView = self.storyboard?.instantiateViewControllerWithIdentifier("SecondView") as ViewController2
 self.presentViewController(SecondView, animated: true, completion:nil)
 self.viewWillDisappear(true)
}

Этот метод я часто использовал, и я знаю, что есть и другой способ использования сегментов, но вы все еще используете @IBActions. Вы просто создаете новый переход (идентификатор) и в prepareforSegue Метод, который вы говорите, что происходит, когда этот переход вызван

Другие вопросы по тегам