From 704a6f55a035e43272582790a99bca4d2fb274f4 Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Mon, 14 May 2018 12:19:19 -0400 Subject: [PATCH] Fix crash after canceling "Add New Contact" Text of the exception is: "Impossible to set up layout with view hierarchy unprepared for constraint" Since their container view is pinned to the top layout guide, this should not change the layout. // FREEBIE --- .../src/ViewControllers/ContactViewController.swift | 11 ++++++++--- .../ViewControllers/MessageDetailViewController.swift | 7 ++++++- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/Signal/src/ViewControllers/ContactViewController.swift b/Signal/src/ViewControllers/ContactViewController.swift index 4e2f43e3f..00d41c001 100644 --- a/Signal/src/ViewControllers/ContactViewController.swift +++ b/Signal/src/ViewControllers/ContactViewController.swift @@ -222,7 +222,7 @@ class ContactViewController: OWSViewController, ContactShareViewHelperDelegate { backButton.autoSetDimension(.width, toSize: backButtonSize) backButton.autoSetDimension(.height, toSize: backButtonSize) topView.addSubview(backButton) - backButton.autoPin(toTopLayoutGuideOf: self, withInset: 0) + backButton.autoPinEdge(toSuperviewEdge: .top) backButton.autoPinLeadingToSuperviewMargin() let backIconName = (self.view.isRTL() ? "system_disclosure_indicator" : "system_disclosure_indicator_rtl") @@ -240,7 +240,7 @@ class ContactViewController: OWSViewController, ContactShareViewHelperDelegate { let avatarView = AvatarImageView() avatarView.image = contactShare.getAvatarImage(diameter: avatarSize, contactsManager: contactsManager) topView.addSubview(avatarView) - avatarView.autoPin(toTopLayoutGuideOf: self, withInset: 20) + avatarView.autoPinEdge(toSuperviewEdge: .top, withInset: 20) avatarView.autoHCenterInSuperview() avatarView.autoSetDimension(.width, toSize: avatarSize) avatarView.autoSetDimension(.height, toSize: avatarSize) @@ -676,7 +676,12 @@ class ContactViewController: OWSViewController, ContactShareViewHelperDelegate { public func didCreateOrEditContact() { Logger.info("\(logTag) \(#function)") - navigationController?.popToViewController(self, animated: true) + guard let navigationController = self.navigationController else { + owsFail("\(logTag) in \(#function) navigationController was unexpectedly nil") + return + } + navigationController.popToViewController(self, animated: true) + updateContent() } } diff --git a/Signal/src/ViewControllers/MessageDetailViewController.swift b/Signal/src/ViewControllers/MessageDetailViewController.swift index 710be7c70..350ade3bf 100644 --- a/Signal/src/ViewControllers/MessageDetailViewController.swift +++ b/Signal/src/ViewControllers/MessageDetailViewController.swift @@ -720,7 +720,12 @@ class MessageDetailViewController: OWSViewController, MediaGalleryDataSourceDele // MARK: - ContactShareViewHelperDelegate public func didCreateOrEditContact() { - navigationController?.popToViewController(self, animated: true) + guard let navigationController = self.navigationController else { + owsFail("\(logTag) in \(#function) navigationController was unexpectedly nil") + return + } + navigationController.popToViewController(self, animated: true) + updateContent() } }