1
구문이 잘못되었다고 생각합니다. 그러나 블록을 처음 사용하기 때문에 이것을 파악할 수 없습니다.블록이 메서드에서 호출되지 않음
-(void)animateViewConstraintChange: (void(^)(void))completionHandler;
이 방법은 다음과 같습니다 :이 사용자 정의 방법이
-(void)animateViewConstraintChange:(void(^)(void))completionHandler
{
[[self view]setNeedsUpdateConstraints];
[UIView animateWithDuration:0.6
animations:^{
[[self view]layoutIfNeeded];
} completion:^(BOOL finished){
completionHandler;
}];
}
그것은 컴파일 및 실행, 그러나 나는이 방법 completionHandler에 실제로 넣어 뭔가를 호출 할 때, 즉 코드는하지 않습니다 이제까지 불렀다.
[self animateViewConstraintChange:^{
[orderedViewControllers removeObject:[self middleViewController]];
[[[self middleViewController] view] removeFromSuperview];
[[self middleViewController] removeFromParentViewController];
_middleViewController = nil;
[[self view]setNeedsUpdateConstraints];
}];
따라서 위 코드의 경우 animateViewConstraintChange가 호출되지만 블록의 코드는 호출되지 않습니다.
또한, 컴파일러는, "사용되지 않는 표현의 결과"라고
completionHandler;
에서 나에게 animateViewConstraintChange 방법에 오류를주고있다.
감사합니다.
U 다 남자! 나는 그것이 쉬운 일임을 알았다. – headache