   // MARK: - Animations
 
   func moveControllerViews(down: Bool) {
-    guard let visibleController = navigationController.visibleViewController
+    guard let navigationController = self.navigationController,
+        visibleController = navigationController.visibleViewController
       where Config.modifyInset
       else { return }
 

  // MARK: - Handling screen orientation

  func orientationDidChange() {
    for subview in navigationController.navigationBar.subviews {
      guard let whisper = subview as? WhisperView else { continue }



  func craft(message: Message, navigationController: UINavigationController, action: WhisperAction) {
    self.navigationController = navigationController
    self.navigationController?.delegate = self
    presentTimer.invalidate()

    var containsWhisper = false
