ios - 如何仅在关闭特定 UIViewController 时才执行操作?

标签 ios objective-c cocoa-touch uiviewcontroller uistoryboard

我有一个 Controller ,它是这样显示的:

- (void)searchButtonTapped
{
    NSLog(@"search button tapped");
    VAGSearchViewController *svc = [[self storyboard] instantiateViewControllerWithIdentifier:@"searchPageSB"];

    [self presentViewController:svc animated:NO completion:nil];
}

呈现它的 Controller 是一个 collectionView Controller 。我想要做的是让这个 collectionView 知道这个 searchViewController 什么时候被关闭,这样我就可以执行一个 Action 。

执行此操作的最有效方法是什么?

请注意,只有当 searchViewController 关闭时才需要执行此操作。

谢谢你的时间

最佳答案

您可以为此创建自己的委托(delegate)。

在 VAGSearchViewController.h 中

@class VAGSearchViewController;
@protocoll VAGSearchViewControllerDismissDelegate <NSObject>
- (void) searchViewControllerDismissed:(VAGSearchViewController*)searchViewController;
@end

//VAGSearchViewController Interface
@property (nonatomic, weak) id<VAGSearchViewControllerDismissDelegate> dismissDelegate;

关闭 viewController 时调用委托(delegate)的方法

[self.dismissDelegate searchViewControllerDismissed:self];

然后在您的 collectionViewController 中添加协议(protocol)

@interface MyCollectionViewController : UICollectionViewController <VAGSearchViewControllerDismissDelegate>

实现 didDismiss 方法并在呈现 searchViewController 时将 self 指定为委托(delegate):

- (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
}

关于ios - 如何仅在关闭特定 UIViewController 时才执行操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24850682/

相关文章:

ios - AVCaptureSession如何使静音输入音频设备?

ios - 出现弹出 View 时如何在背景 View 中突出显示按钮?

iphone - 将 Controller 插入堆栈后,后退按钮未显示

iphone - 导航 Controller 后退按钮消失了吗?

ios - iOS 上的 Base64 编码最后缺少填充

ios - 在 Singleton Objective C 中删除 NSNotificationCenter 的观察者

ios - 文本字段确实开始编辑未在自定义单元格上调用

ios - 动画 Storyboard状态/位置

objective-c - Cocoa 自动布局向后兼容吗?

cocoa-touch - willRotateToInterfaceOrientation :duration: not called for iOS5 after dismissing from modal