Hello,
Switching from iOS 12 to 13 caused that our views no longer function correctly. This is due that when NavigationController.PushViewController is called, it no longer calls ViewWill/DidAppear and their opposite Will/DidDisappear. I have read the iOS 13 release notes and saw the video and everyhing that has been mentioned regarding these events is directed at presentation of card-like modal views, which has nothing to do with the PushViewController function. In iOS 12 the PushViewController would navigate to a new ViewController and therefrom I could click on the default back button to navigate back to the previous one and it called the relevant lifecycle events. That is no longer possible with iOS 13.
The way our Views are constructed are quite old fashioned. We use XIB files to construct our Views and furthermore, this is done programmatically and the language used is Objective-C.
Most of our views are based on UIViewControllers, UITables and UITableViewController.
Now one thing I do know is that UITableViewController, through the use of ViewDidAppear/will, will call ReloadData to correctly set up the table, but since using PushViewController no longer calls these events, the layout will be broken.
It could possibly something that we missed or havent understood about the framework, but I have written this after searching through countless websites about someone with a similar issue, but to no avail.
An example of what happens can be seen below:
What I expect it to call is
ViewDidLoad --> ViewWillAppear --> ViewDidAppear
and when leaving the View it will call these:
ViewWillDisappear --> ViewDidDisappear --> ViewDidUnload(deprecated)
And no other viewController lifecycles except for ViewDidLoad is called.
This causes my view to look completely wrong.
For some reason the two images i pasted in here arent visible.
If I remember well, I had the problem with a navController as well.
I had to declare the navController as fullScreen, as well as the rootView (a TableViewController) and its linked views via push segues (so similar if I understand to your case).
The fullScreen does not draw as such in IB on the RootView, but works well on device or even simulator.
So, give it a try by forcing to fullScreen in viewDidload for the pushed view.
Question: do you declare in IB or in code ?