[英]How do I perform an action only when a specific UIViewController is dismissed?
我有一個控制器,它的顯示方式如下:
- (void)searchButtonTapped
{
NSLog(@"search button tapped");
VAGSearchViewController *svc = [[self storyboard] instantiateViewControllerWithIdentifier:@"searchPageSB"];
[self presentViewController:svc animated:NO completion:nil];
}
呈現它的控制器是collectionView控制器。 我想做的是讓這個collectionView知道何時關閉此searchViewController,以便我可以執行操作。
什么是最有效的方法?
請注意,僅在關閉searchViewController時才需要執行此操作。
謝謝你的時間
您可以為此創建自己的委托。
在VAGSearchViewController.h中
@class VAGSearchViewController;
@protocoll VAGSearchViewControllerDismissDelegate <NSObject>
- (void) searchViewControllerDismissed:(VAGSearchViewController*)searchViewController;
@end
//VAGSearchViewController Interface
@property (nonatomic, weak) id<VAGSearchViewControllerDismissDelegate> dismissDelegate;
當您關閉viewController時,在委托上調用方法
[self.dismissDelegate searchViewControllerDismissed:self];
並在您的collectionViewController中添加protocoll
@interface MyCollectionViewController : UICollectionViewController <VAGSearchViewControllerDismissDelegate>
實現didDismiss方法,並在呈現searchViewController時將self分配為委托:
- (void)searchButtonTapped
{
NSLog(@"search button tapped");
VAGSearchViewController *svc = [[self storyboard] instantiateViewControllerWithIdentifier:@"searchPageSB"];
svc.dismissDelegate = self;
[self presentViewController:svc animated:NO completion:nil];
}
- (void) searchViewControllerDismissed:(VAGSearchViewController*)searchViewController{
// do something here
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.