我无法弄清楚如何让用户选择本地通知的重复间隔。我已经链接到两个图像,其中详细描述了问题。
This is the image of the file where I need to insert the choose from the segmented control
And this is the image of the file where the segmented control is placed.
答案 0 :(得分:0)
我已查看了您的代码,一个解决方案可能是将segmentedControl
的值作为参数添加到TodoItem
,就像您现在在gentag
中所做的那样参数。
然后在您的addItem
方法中,您只需"需要将您现在拥有的Int
值转换为NSCalendarUnit
,您可以将其移至notification.repeatInterval
。
为了保持这个漂亮,您可以创建一个知道如何从Enum
转换为Int
值的新NSCalendarUnit
,然后您的gentag
参数可以是此类型
因此,在您拥有TodoSchedulingViewController
的文件中,您可以在文件顶部写下这样的内容:
import UIKit
enum RepeatInterval: Int {
case None = 0
case Daily = 1
case Weekly = 2
func toCalendarUnit() -> NSCalendarUnit {
switch self {
case .None:
return NSCalendarUnit(rawValue: 0)
case .Daily:
return NSCalendarUnit.Day
case .Weekly:
return NSCalendarUnit.Weekday
}
}
}
class TodoSchedulingViewController: UIViewController {
...
然后您可以像这样使用:
在ViewController
:
let todoItem = TodoItem(deadline:....,
title:....,
gentag: RepeatInterval(rawValue: segmentedControl.selectedSegmentIndex)!, //You can force unwrap here, because you know the value is always one you get from your segmentedControl
UUID......)
在TodoList
课程中:
...
notification.userInfo = ["title" : item.title, "UUID" : item.UUID]
notification.repeatInterval = item.gentag.toCalendarUnit()
希望这是有道理的。
哦......下次,请发布您的实际代码而不是图片,这样可以更轻松地快速查看正在发生的事情并更快地将代码片段从代码中复制到答案中:)