如何在 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
我在 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
:
notification
[[NSNotificationCenter defaultCenter] postNotificationName:@"adjustNavBar" object:self];
dispatch_async(dispatch_get_main_queue(), ^{
[self dismissAnimated:YES completion:^(BOOL finished) {
}];
});
如果不起作用,请在主线程
中尝试运行checkForPartialScroll