この質問に対して:How to change Back button text from within the child view controller?私は、戻るボタンのタイトルをpreviousViewController.navigationItem.backBarButtonItem?.title = "New Title"
に変更した後、ナビゲーションバーを更新するための適切な方法を探しています。UINavigationBarを適切に更新する方法は?
リンク質問から(そう理想的ではない?)解決策:
if let navigationController = self.navigationController {
navigationController.popViewControllerAnimated(false)
navigationController.pushViewController(self, animated: false)
}
を編集:
はどうやら層フレームを変更するとリフレッシュするナビゲーションバーを強制します。ないソリューションが、私は推測する安価な回避策(?):
if let navigationController = self.navigationController {
navigationController.navigationBar.layer.frame.insetInPlace(dx: 0.1, dy: 0)
navigationController.navigationBar.layer.frame.insetInPlace(dx: -0.1, dy: 0)
}
多くの場合、あなたがしたいことを真っ直ぐなやり方で行なわなければ、正当な理由があります。戻るボタンをクリックすると、ユーザーはどこから来たのかがわかり、ナビゲーション履歴を書き換えないようにする必要があります。その左上隅に他の種類の動作(後方をナビゲートする以外の動作)が必要な場合は、 'backBarButtonItem'を使用する必要はありません。 – nhgrif
特定の状況では、タイトルを変更するとユーザーエクスペリエンスが向上します。 WhatsAppを例に取る。 – MJQZ1347
私はWhatsAppを使ったことがないと仮定します。 – nhgrif