Ios i分段控制-根据日期选择的设置(SWIFT)

Ios i分段控制-根据日期选择的设置(SWIFT),ios,swift,Ios,Swift,正如标题所说,我试图根据日期设置选定的分段控件。我的段控件包括一周中的几天,我还有一个日期和时间标签。视图打开时,必须选择适当的日期 我知道我必须做点什么: segmentControl.selectedSegmentIndex = 0 我要和以下人约会: showDate.text = "Date: " + DateFormatter.localizedString(from: Date(), dateStyle: DateFormatter.Style.medium, timeStyle

正如标题所说,我试图根据日期设置选定的分段控件。我的段控件包括一周中的几天,我还有一个日期和时间标签。视图打开时,必须选择适当的日期

我知道我必须做点什么:

segmentControl.selectedSegmentIndex = 0
我要和以下人约会:

showDate.text = "Date:  " + DateFormatter.localizedString(from: Date(), dateStyle: DateFormatter.Style.medium, timeStyle: .none)

但我不知道如何将selectedIndex设置为依赖于日期并显示适当的日期。我对斯威夫特还是个新手,还在学习,任何帮助都将不胜感激!谢谢

UISegmentedControl
索引从0开始。如果你有一周中的所有日子,它的索引从0开始,以6结束

您可以使用此工具在工作日获取一天的索引

let day = Calendar.current.component(.weekday, from: Date())
周日返回1,周一返回2。。。星期六七点

因此,您可以按如下方式分配
selectedSegmentIndex

    if (2...6).contains(day) {
        segmentControl.selectedSegmentIndex = day-2
    } else {
        segmentControl.selectedSegmentIndex = UISegmentedControlNoSegment
    }

因此,您的问题基本上是“如何获取一周中的当前日期作为一个数字?”,对吗?我设法获取了这段代码,但我不知道如何设置加载视图时的当前日期将代码放入
viewDidLoad
。我应该使用if语句还是其他什么?我发现的代码不起作用,如何获取一周中的天数?我的UISegmentControl仅为周一到周五,因此我将其设置为:
segmentControl.selectedSegmentIndex=day-2
,但周六返回周一,周日未选择任何内容,然后返回周一。如何确定星期六?@Javy14如果日期是周一到周五,请在分段控件中选择适当的分段。如果日期是星期日或星期六,则不选择任何内容。这是你想要的吗?是的,这就是我想要的我想这就是我想要的!我还有另一个问题,关于在点击第二天时显示第二天日期,以及在点击前一天时显示前一天日期。我应该再问一个问题吗?@Javy14是的。问一个新问题