2014-09-26 6 views
0

У меня есть 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 

ответ

0
for (UIViewController *controller in self.navigationController.viewControllers) 
{ 
    if ([controller isKindOfClass:[A class]]) 
    { 
     [self.navigationController popToViewController:controller 
               animated:YES]; 
     break; 
    } 
} 
+0

Это ответ, который мне нужен. Большое спасибо. – AleksandarNS

0

Единственный способ заменяет кнопку назад, с помощью настраиваемой кнопки.

+0

Не могли бы вы уточнить? Покажите, как это сделать, укажите образец, способ использования? – Cyrille

0

Вы можете достичь этого с помощью контроллера представления в виде модального вида. Сначала от нажатой кнопки «Вперёд» в настоящий момент b view.if кнопка secnd нажата на текущую c view, а в c view контроллер нажимает кнопку «Назад» и добавляет делегаты и реализует делегат в контроллере view.and вам придется отклонить один вид за другим в контроллере представления.

0

После прочтения, что вы сказали, я думаю, что вы имели в виду реализации пользовательских действий для каждого способа button.The я бы это сделать (в 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.You просто создать новый SEGUE (идентификатор) и в методе prepareforSegue вы говорите, что происходит, когда что переход срабатывает

0

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

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

    - (void)clkBack{ 
     //your view controllers 
    } 
назад
Смежные вопросы