2015-10-06 5 views
0

Я использую этот большой STPopup: http://cocoadocs.org/docsets/STPopup/1.2.0/Classes/STPopupController.htmlУскоренный/закрытый метод обратного вызова для STPopupController?

- (void)showPopupWithTransitionStyle:(STPopupTransitionStyle)transitionStyle rootViewController:(UIViewController *)rootViewController 
{ 
    STPopupController *popupController = [[STPopupController alloc] initWithRootViewController:rootViewController]; 
    popupController.cornerRadius = 4; 

    popupController.transitionStyle = transitionStyle; 
    [popupController presentInViewController:self]; 
    //[popupController dismissWithCompletion:^{NSLog(@"Dismissed!");}]; 

} 

- (IBAction)btnClick:(id)sender { 
    [self showPopupWithTransitionStyle:STPopupTransitionStyleSlideVertical rootViewController:[ad new]]; 
} 

Это работает отлично до сих пор, но я хочу, чтобы выполнить код, когда всплывающее окно закрывается. Как я могу это сделать?

Thx!

ответ

1

Вместо

[popupController presentInViewController:self]; 

использование следующего кода,

[popupController presentInViewController:self completion:^{ 
    NSLog(@"Dismissed!"); 
//execute your code when popup is closed, here! 
}]; 

EDIT: вы можете использовать следующий метод для выполнения кода после закрытия всплывающего окна.

- (void)dismissWithCompletion:(void (^) (void))completion 
+0

это только выполнение, что 'completion' кода, когда всплывающее окно завершения выскакивать. И * не когда он закрыт, нажав на кнопку «Крест». – user3550458

0

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

0

На мой взгляд, лучшее решение.

- (void)didMoveToParentViewController:(UIViewController *)parent 
{ 
    if (![parent isEqual:self.parentViewController]) { 
     NSLog(@"Popup close!"); 
    } 
} 

Но он работает только с iOS5 +

Смежные вопросы