Post

Replies

Boosts

Views

Activity

Managing local notifications
I created this code that sends local notification after user reaches the view controller, but the notification is sent each time the user goes to the view controller. How do I make it send the notification only once? What change should I make in my code? import UserNotifications class firstViewController: UIViewController, UNUserNotificationCenterDelegate { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. let center = UNUserNotificationCenter.current() center.delegate = self center.requestAuthorization(options: [.badge,.sound,.alert]) { granted, error in if error == nil { print("User permission is granted : \(granted)") } } // Step-2 Create the notification content let content = UNMutableNotificationContent() content.title = "Hello" content.body = "Welcome" // Step-3 Create the notification trigger let date = Date().addingTimeInterval(2) let dateComponent = Calendar.current.dateComponents([.year,.month,.day,.hour,.minute,.second], from: date) let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponent, repeats: false) // Step-4 Create a request let uuid = UUID().uuidString let request = UNNotificationRequest(identifier: uuid, content: content, trigger: trigger) // Step-5 Register with Notification Center center.add(request) { error in } } func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) { completionHandler([.sound,.banner,.badge]) } }
1
0
551
Mar ’22
Change view controller automatically doesn't work
In my app I've got moment where I use timer to go from one view controller to next view controller, and it doesn't work. Could somebody tell me what's wrong? class fifthViewController: UIViewController {     override func viewDidLoad() {         super.viewDidLoad()                  let delay : Double = 2.0    // 2 seconds here         DispatchQueue.main.asyncAfter(deadline: .now() + delay) {             let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)             let IDKViewController = storyBoard.instantiateViewController(withIdentifier: "IDKview") as! IDKViewController             self.present(IDKViewController, animated:true, completion:nil)         }     }          }
4
0
723
Dec ’21