2014-09-17 10 views
5

ScenarioXcode: Wykrywanie gdy kontroler nawigacyjny realizowane „Wstecz” jest wciśnięty

Mam app z kontrolerem nawigacyjnym. Kiedy kontroler nawigacyjny przesuwa kolejny kontroler na stos, w lewym górnym rogu ekranu wyświetla się przycisk powrotu "< (tytuł ostatniego kontrolera widoku)".

Co muszę

muszę coś jak (pseudo kod) ...

-(void)detectedBackButtonWasPushed { 

    NSLog(@"Back Button Pressed"); 

    //Do what I need done 

} 

Pytanie

Ponieważ przycisk ten jest tworzony przez kontroler nawigacji i nie stworzyłem tego przycisku w scenorysach, Jak mogę uzyskać przycisk "podpięty" do takiej metody?

przykłady tego, co Ive wypróbowany dla Olega

-(void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated { 

    UIViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"notification"]; 

    if (viewController == vc) { 

     NSLog(@"BACK BUTTON PRESSED"); 
    } 
} 

Czy to jak mam to zrobić? Ponieważ to nie działa.

Odpowiedz

4

Aby to wykryć, użyj viewWillDisappear.

-(void) viewWillDisappear:(BOOL)animated 
{ 
    if ([self.navigationController.viewControllers indexOfObject:self]==NSNotFound) 
    { 
     [self backButtonPressed]; 
     [self.navigationController popViewControllerAnimated:NO]; 
    } 

    [super viewWillDisappear:animated]; 
} 

-(void)backButtonPressed 
{ 
    NSLog(@"YEA"); 
} 
+1

Negatywna. Masz rację, mogę wykryć, kiedy ekran zniknie. Problem polega na tym, że mam dodatkową funkcjonalność (odkrywanie paska kart na dole), które musi się wydarzyć ** PRZED ** ekran znika. W przeciwnym razie pasek kart pozostanie ukryty po zniknięciu ekranu. Który niszczy moją nawigację po aplikacjach. Jak to zrobić? –

+0

UINavigationControllerDelegate przyjrzeć. I spróbuj użyć - (void) navigationController: (UINavigationController *) navigationController willShowViewController: (UIViewController *) viewController animowany: (BOOL) animowany –

+0

OK Zapamiętaj to –

0

Wcześniej rozwiązali ten ustawiając navigationBar leftItem się przycisk z powrotem z selektora niestandardowej, która odrzuca pogląd, wraz z czegokolwiek innego, co jest potrzebne do zrobienia.

Mogę również zasugerować spojrzenie na przycisk "Wstecz" i dodanie celu: "Ja", które jest wywoływane przy dotknięciu.

Powiązane problemy