Mac Catalyst: UINavigationController incorrectly blocks -setViewControllers:animated: call on UINavigationController when a transition/presentation is occurring on a different view controller.

I have a triple UISplitViewController. A UINavigationController is in the secondary column.

When the selection changes in the supplementary column I call -setViewControllers:animated: and pass the navigation controller the new vc.

I noticed sometimes the navigation view controller isn't updating and this logs out:

setViewControllers:animated: called on while an existing transition or presentation is occurring; the navigation stack will not be updated.

So this happens when the Split View controller itself is presenting another view controller modally (say a view controller with a UIActivityIndicatorView in it to show loading progress). But there is no transition/presentation occurring on the UINavigationController contained in the secondary view controller column itself. The presentation occurring on the UISplitViewController is completely separate and unrelated to the UINavigationController's navigation stack that's in the secondary column and therefore I should not be prevented from modifying the navigation stack.

Replies

FB11753568