Навигация по кнопке "Назад" изменяет функциональность
У меня есть 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
Метод, который вы говорите, что происходит, когда этот переход вызван