То, что вы делаете, полностью заменяет корневой контроллер представления вашего приложения, это означает, что весь текущий пользовательский интерфейс будет отброшен.
Вместо этого вам следует использовать свои знания о приложении для направления его на новый контент. Например, если ваш корневой контроллер представления является контроллером навигации, вы можете привести rootViewController
к контроллеру навигации и передать его (это не удастся, если ваш корневой контроллер представления - это что-то еще, например контроллер панели вкладок).
guard let vc = storyboard.instantiateViewController(withIdentifier: "notification") as? NotificationViewController else {
fatalError("Main Storyboard doesn't have a notification controller")
}
guard let nav = self.window?.rootViewController as? UINavigationController else {
return //handle unexpected state
}
nav.push(vc, animated: true)
Другой вариант - встроить контроллер уведомлений в контроллер навигации, добавить кнопку Close
и представить ее модально, чтобы вы могли представить ее поверх rootViewController
независимо от того, что это за контроллер.