JTCalendar:从另一个ViewController调用方法后,UILabel不更新

时间:2019-02-18 17:41:44

标签: ios swift uilabel jtcalendar

我正在尝试使用ColllectionView和CardView制作日历,该日历会不断显示,但用户可以扩展以查看特定日期的约会。看起来像这样的collapsedexpanded。我无法解决的问题是,当我在CollectionView上按一个日期时,我希望CardView上的标签更新并显示所选的日期。问题是当我尝试通过从CollectionView上的didSelectItemAt调用CardView类的方法来设置新日期时 标签不变。我认为这与CardView加载一次但从未重新加载标签文本有关,因为在我的代码中,带有选定日期的实际字符串在传递给CardView上的方法时确实到达了其最终目的地。 / p>

CollectionView didSelectItemAt方法:

cardView = CardViewController()

  func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    let cell=collectionView.cellForItem(at: indexPath)
    cell?.backgroundColor=Colors.darkRed
    let lbl = cell?.subviews[1] as! UILabel
    lbl.textColor=UIColor.white

    var month = String(currentMonthIndex)
    let year = currentYear
    let dateString = String(year) + "/" + month + "/" + lbl.text!
    let date = dateString.date    //.date is a String extension to turn it to type Date
    cardView.updateCardData(SelecctionDate: date!)
}

CardView的updateCardData方法

func updateCardData(SelecctionDate: Date) {
        self.dateLabel?.text = self.getDate(dateAsISO: SelecctionDate)
        self.viewWillAppear(true)
}

如果你们需要更多信息或代码,我愿意与他人分享,如果我的英语不是最好,那不是我的母语:p

谢谢!

0 个答案:

没有答案