J'ai le problème que le topLayoutGuide.length
dans un UIViewController
(de XIB) est fixé après viewWillAppear
et je ne sais pas comment me brancher sur le changement de topLayoutGuide.length
pour définir initialement le ContentOffset d'une vue de tableau.
Code pour présenter de façon modale un UIViewController
à l'intérieur d'un UINavigationController
:
let viewController = UIViewController(nibName: "ViewController", bundle: nil)
let navigationController = UINavigationController(rootViewController: viewController)
present(navigationController, animated: true, completion: nil)
Ma sortie de débogage concernant le topLayoutGuide.length
Init view controller
-[UIViewController topLayoutGuide]: guide not available before the view controller's view is loaded
willMove toParentViewController - top layout guide nan
Init navigation controller and pass view controller as root vc
Present navigation controller modally
viewDidLoad - top layout guide 0.0
viewWillAppear - top layout guide 0.0
viewWillLayoutSubviews - top layout guide 64.0
viewDidLayoutSubviews - top layout guide 64.0
viewWillLayoutSubviews - top layout guide 64.0
viewDidLayoutSubviews - top layout guide 64.0
viewDidAppear - top layout guide 64.0
didMove toParentViewController - top layout guide 64.0
viewWillLayoutSubviews - top layout guide 64.0
viewDidLayoutSubviews - top layout guide 64.0
Pour l'instant, j'utilise un drapeau bool dans le contrôleur de vue pour définir le décalage de contenu dans le fichier de configuration. viewDidLayoutSubviews
une seule fois, même si la méthode est appelée plusieurs fois.
Avez-vous une solution plus élégante en tête ?