如何在 Next ViewController 中结束完成块

How to end the Completion Block in Next ViewController

我在 ViewController A

中有以下块
dispatch_async(dispatch_get_main_queue(), ^{
    [self dismissAnimated:YES completion:^(BOOL finished) {
        [[NSNotificationCenter defaultCenter] postNotificationName:@"adjustNavBar"
                                                            object:self];
    }];
});    

在执行 'dismissAnimated' 块方法后,NSNotificationCenter 被调用,ViewController B 中的观察者正在执行以下代码

- (void)viewDidLoad {
    [super viewDidLoad];
    [[NSNotificationCenter defaultCenter] addObserver:self
                            selector:@selector(adjustNavBar)
                            name:@"adjustNavBar"
                            object:nil];
}

-(void)adjustNavBar {
    [self checkForPartialScroll];
}

以上代码执行后,以ViewControllerA结尾。

但是我想在ViewController B 中结束这个过程。如何做到这一点,我正在尝试这个回调函数。

使用委托或回调,我可以实现我正在尝试的吗?

将该代码写在您的代码之上, 家VC 你下一个名字VC & @"HomeVC" 你下一个 VC

的标识符
 dispatch_async(dispatch_get_global_queue(0, 0), ^{
  HomeVC *homeVC = (HomeVC *) [self.storyboard instantiateViewControllerWithIdentifier:@"HomeVC"];
    }

dismissviewcontroller:

之前尝试 post notification
 [[NSNotificationCenter defaultCenter] postNotificationName:@"adjustNavBar" object:self];  

dispatch_async(dispatch_get_main_queue(), ^{
    [self dismissAnimated:YES completion:^(BOOL finished) {

    }];
}); 

如果不起作用,请在主线程

中尝试运行 checkForPartialScroll