Всем привет, в моём приложении есть семь SegmentControl на них стоит функция на отправку уведомлений но почему то уведомления приходят во все дни недели если даже сегмент контрол находится в состояние выключенном import UIKit
import UserNotifications
class ViewController: UIViewController, UNUserNotificationCenterDelegate {
let notificationCenter = UNUserNotificationCenter.current ()
private var segmentIndex = "SegmentControlIndex"
private let segmentIndex2 = "SegmentControlIndex2"
private let segmentIndex3 = "SegmentControlIndex3"
private let segmentIndex4 = "SegmentControlIndex4"
private let segmentIndex5 = "SegmentControlIndex5"
private let segmentIndex6 = "SegmentControlIndex6"
private let segmentIndex7 = "SegmentControlIndex7"
func scheduleNotificationForDayOfWeek(dayOfWeek: Int) {
let content = UNMutableNotificationContent()
content.title = "Reminder"
content.body = "Time to go to workout"
var dateComponents = DateComponents()
dateComponents.weekday = dayOfWeek // Задайте номер дня недели (1 - воскресенье, 2 - понедельник и так далее)
dateComponents.hour = 10 // Установите желаемое время в часах (например, 10:00 утра)
let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: true)
let requestIdentifier = "notification_\(dayOfWeek)"
let request = UNNotificationRequest(identifier: requestIdentifier, content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request) { (error) in
if let error = error {
print("Error creating notification: \(error.localizedDescription)")
} else {
print("Notification for the day of the week \(dayOfWeek) successfully planned")
}
}
}
@IBOutlet weak var q:UISegmentedControl!
@IBOutlet weak var w: UISegmentedControl!
@IBOutlet weak var e: UISegmentedControl!
@IBOutlet weak var r: UISegmentedControl!
@IBOutlet weak var t: UISegmentedControl!
@IBOutlet weak var y: UISegmentedControl!
@IBOutlet weak var u: UISegmentedControl!
@IBOutlet weak var cal: UIButton!
@IBAction func segmentedControlValueChanged1(_ sender: UISegmentedControl) {
if q.selectedSegmentIndex == 1{ switch sender {
case q:
scheduleNotificationForDayOfWeek(dayOfWeek: 1) // Понедельник
default:
break
}
}else {return}
}
@IBAction func segmentedControlValueChanged2(_ sender: UISegmentedControl) {
if q.selectedSegmentIndex == 1{
switch sender {
case w:
scheduleNotificationForDayOfWeek(dayOfWeek: 2) // Понедельник
default:
break
}
}
}
@IBAction func segmentedControlValueChanged3(_ sender: UISegmentedControl) {
if e.selectedSegmentIndex == 1{
switch sender {
case e:
scheduleNotificationForDayOfWeek(dayOfWeek: 3) // Вторник
default:
break
}
}
}
@IBAction func segmentedControlValueChanged4(_ sender: UISegmentedControl) {
if r.selectedSegmentIndex == 1{
switch sender {
case r:
scheduleNotificationForDayOfWeek(dayOfWeek: 4) // Среда
// Продолжайте добавлять обработчики для остальных дней недели
default:
break
}
}
}
@IBAction func segmentedControlValueChanged5(_ sender: UISegmentedControl) {
if t.selectedSegmentIndex == 1{
switch sender {
case r:
scheduleNotificationForDayOfWeek(dayOfWeek: 5)
default:
break
}
}
}
@IBAction func segmentedControlValueChanged6(_ sender: UISegmentedControl) {
if y.selectedSegmentIndex == 1{
switch sender {
case y:
scheduleNotificationForDayOfWeek(dayOfWeek: 6)
default:
break
}
}
}
@IBAction func segmentedControlValueChanged7(_ sender: UISegmentedControl) {
if u.selectedSegmentIndex == 1{
switch sender {
case u:
scheduleNotificationForDayOfWeek(dayOfWeek: 7)
default:
break
}
}
}
@IBOutlet weak var save: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
q.selectedSegmentIndex = 0
w.selectedSegmentIndex = 0
e.selectedSegmentIndex = 0
r.selectedSegmentIndex = 0
t.selectedSegmentIndex = 0
y.selectedSegmentIndex = 0
u.selectedSegmentIndex = 0
save.addTarget(self, action:#selector (didTapSaveButton), for: .touchUpInside)
q.addTarget(self, action:#selector (didTapSegmentControl), for: .valueChanged)
q.selectedSegmentIndex = UserDefaults.standard.integer(forKey: segmentIndex)
w.addTarget(self, action:#selector (didTapSegmentControl2), for: .valueChanged)
w.selectedSegmentIndex = UserDefaults.standard.integer(forKey: segmentIndex2)
e.addTarget(self, action:#selector (didTapSegmentControl3), for: .valueChanged)
e.selectedSegmentIndex = UserDefaults.standard.integer(forKey: segmentIndex3)
r.addTarget(self, action:#selector (didTapSegmentControl4), for: .valueChanged)
r.selectedSegmentIndex = UserDefaults.standard.integer(forKey: segmentIndex4)
t.addTarget(self, action:#selector (didTapSegmentControl5), for: .valueChanged)
t.selectedSegmentIndex = UserDefaults.standard.integer(forKey: segmentIndex5)
y.addTarget(self, action:#selector (didTapSegmentControl6), for: .valueChanged)
y.selectedSegmentIndex = UserDefaults.standard.integer(forKey: segmentIndex6)
u.addTarget(self, action:#selector (didTapSegmentControl7), for: .valueChanged)
u.selectedSegmentIndex = UserDefaults.standard.integer(forKey: segmentIndex7)
notificationCenter.requestAuthorization(options: [.alert,.sound,.alert]) { [self] (gretid, error) in
guard gretid else {return}
notificationCenter.getNotificationSettings { (settings) in
guard settings.authorizationStatus == .authorized else {return}
}
}
}
@objc func didTapSaveButton(){
}
@objc func didTapSegmentControl(sender: UISegmentedControl){
UserDefaults.standard.set(sender.selectedSegmentIndex, forKey: segmentIndex)
}
@objc func didTapSegmentControl2(sender: UISegmentedControl){
UserDefaults.standard.set(sender.selectedSegmentIndex, forKey: segmentIndex2)
}
@objc func didTapSegmentControl3(sender: UISegmentedControl){
UserDefaults.standard.set(sender.selectedSegmentIndex, forKey: segmentIndex3)
}
@objc func didTapSegmentControl4(sender: UISegmentedControl){
UserDefaults.standard.set(sender.selectedSegmentIndex, forKey: segmentIndex4)
}
@objc func didTapSegmentControl5(sender: UISegmentedControl){
UserDefaults.standard.set(sender.selectedSegmentIndex, forKey: segmentIndex5)
}
@objc func didTapSegmentControl6(sender: UISegmentedControl){
UserDefaults.standard.set(sender.selectedSegmentIndex, forKey: segmentIndex6)
}
@objc func didTapSegmentControl7(sender: UISegmentedControl){
UserDefaults.standard.set(sender.selectedSegmentIndex, forKey: segmentIndex7)
}
}
как мне решить эту проблему?