簡體   English   中英

僅當關閉特定的UIViewController時,如何執行操作?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM