Próbuję odwołać kontroler widok jak to:dismissViewControllerAnimated blok ukończenie nie nazywa
[composeViewController dismissViewControllerAnimated:YES completion:^{
NSLog(@"Hello"); // Never outputted
}];
Kontroler widoku zostaje odrzucona, ale z jakiegoś powodu nigdy blok Zakończenie nazywa.
Nigdy nie miałem żadnych problemów z blokiem zakończenia, który nie był wywoływany z innymi kontrolerami widoku.
Ten kontroler widoku jest jednak "specjalny", ponieważ został dodany jako kontroler widoku podrzędnego (z którym nie pracowałem wcześniej w mojej aplikacji). Czy narzuca to jakieś skutki uboczne, dlaczego blok zakończenia nie jest wywoływany?
To dodaje tak:
UIViewController *rootVC = [UIApplication sharedApplication].delegate.window.rootViewController;
[rootVC addChildViewController:self];
[rootVC.view addSubview:self.view];
[self didMoveToParentViewController:rootVC];
'addChildViewController:' faktycznie popycha ten kontroler widok na stosie nawigacji. Musisz go wyskoczyć zanim ten blok może wystrzelić – CodaFi
Próbowałem zrobić '[composeViewController removeFromParentViewController];' (Widzę, że został usunięty z 'childViewControllers' własności' rootViewController') przed wywołaniem 'dismiss ...', ale zakończenie blok wciąż nie jest wywoływany. –
po stosie nawigacji, a następnie. – CodaFi