2015-02-01 7 views
0

하나의 ViewController에서 두 번째로 [self back]을 호출하고 backView after alert 함수를 호출해야합니다. 가능한가?[self back] 후 함수 호출

편집 : FirstViewController에서

:

- (void)didPressBuyPackageButton:(UIButton *)sender 
{ 
    UIButton *button = (UIButton *)sender; 

    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Title " 
                 message:@"Message " 
                 delegate:self 
               cancelButtonTitle:@"Close" 
               otherButtonTitles:@"Koupit",@"Obnovit koupu", nil]; 

    switch (button.tag) { 
     case 1: // Texty pre balicek c. 1 (Rocnik 2 - Balicek 1) 
      alertView.title = @"Ročník 2"; 
      alertView.message = @"Tu bude popis čo balíček obsahuje."; 
      alertView.tag = 1; 
      break; 
     case 2: 
      alertView.title = @"Ročník 2 - Balíček 2"; 
      alertView.message = @"Tu bude popis čo balíček obsahuje."; 
      alertView.tag = 2; 
      break; 
     case 3: 
      alertView.title = @"Ročník 3 - Balíček 1"; 
      alertView.message = @"Tu bude popis čo balíček obsahuje."; 
      alertView.tag = 3; 
      break; 

     default: 
      break; 
    } 
    [alertView show];  
} 

그리고 내가 필요하면 다시 FirstViewController를 표시 및 기능 "didPressBuyPackageButton '이라고 SECOND_ViewController에서 통화 기능입니다 ...

답변

1

당신이 경우 두 번째보기 컨트롤러의 컨텍스트에서 dismissViewControllerAnimated:completion:을 호출하여 첫 ​​번째보기 컨트롤러로 다시 전환 할 수 있습니다. UIAlertView을 표시하는 데 사용할 수있는 완료 콜백을 제공합니다.

편집 :

- (void)back { 
    // get a reference to presentingViewController 
    FirstViewController *presentingViewController = (FirstViewController *)self.presentingViewController; 

    // dismiss the second view controller 
    [self dismissViewControllerAnimated:YES completion: ^{ 
     // show the alert 
     [presentingViewController showAlert]; 
    }]; 
} 

당신은 두 번째 뷰 컨트롤러에서 back를 호출해야합니다.

다른 방법으로는 위임을 사용하는 것입니다. 첫 번째보기 컨트롤러는 두 번째보기 컨트롤러를 인스턴스화하고 자신을 두 번째보기 컨트롤러의 대리자로 설정합니다. back (두 번째보기 컨트롤러)에서 (두 번째보기 컨트롤러가 완료 한) 위임자 (첫 번째보기 컨트롤러)에 알리고이를 닫으십시오. 완료 블록을 사용하여 애니메이션의 끝을 처리합니다. 같은 트릭.

+0

감사합니다.하지만 다시 호출 한 후 FirstViewController에서 alertView를 열어야합니다 .... – user3062571

+0

'presentingViewController'에 대한 참조를 가져옵니다. 수정했습니다. –

+0

내가 필요한 코드 샘플을 추가했습니다. 도움이되는 희망 ... 감사합니다! – user3062571