-
Notifications
You must be signed in to change notification settings - Fork 190
Open
Description
Presenting a child coordinator too quickly sometimes results in the Coordinator getting deallocated. Find the attached sample project as proof.
https://github.com/chefnobody/DeallocSample
In the attached project, you will find NavigationCoordinators that trigger some action after 1.0 second:
RootCoordinator pushes ListCoordinator, which presents ProfileCoordinator, which presents OnboardingCoordinator.
Line ~73 of AppDelegate reads like this:
// Change this line's dispatch time to `.now() + 1.0` to avoid the bug:
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { [weak self] in
self?.trigger(.profile)
}
Run the code as-is should result in a log like this:
*****
ProfileCoordinator deinit
Changing the dispatch delay time on line 73 to 1.0:
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) { [weak self] in
self?.trigger(.profile)
}
Does not cause ProfileCoordinator to deallocate and successfully presents the final OnboardingCoordinator
leviathan
Metadata
Metadata
Assignees
Labels
No labels