0

如何在启动应用程序时最初更新 fscalender 中的日期。我在滚动 fscalender 时更新日期,但我怀疑最初加载应用程序如何将日期发送到邮政服务呼叫?

这是我从服务器获取日期的 api。

let now2 = NSDate() 
let dateFormatter2 = DateFormatter() 
dateFormatter2.dateFormat = "yyyy" 
let nameOfyear = dateFormatter2.string(from: now2 as Date)
print("nameOfyear",nameOfyear)
let urlString = Fetch_Parent_Dashboard_Calendar_URL+"&year="+nameOfyear+"&mo‌​nth="+nameOfMonth+"&‌​branch_id=" + Userbranchid!

当用户滚动 fscalender 时,我从用户默认发送到服务器中获取日期值。以下是滚动 fscalender 时向服务器发送日期的代码。

func calendar(_ calendar: FSCalendar, didSelect date: Date, at monthPosition: FSCalendarMonthPosition) 
{
   let dateFormatter2 = DateFormatter() 
   dateFormatter2.dateFormat = "dd/MM/yyyy" 
   let nameOfDate = dateFormatter2.string(from: date as Date)
   print("nameOfDate",nameOfDate) 
   UserDefaults.standard.set(nameOfDate, forKey: "nameOfDate")
}

我的疑问是最初加载应用程序我必须发送当前日期和滚动时间必须发送该用户默认时间在这种情况下如何处理日期

4

1 回答 1

0

如果我理解正确,你必须这样做。

使用给定日期调用 Web 服务的通用函数

func callWebServiceWithDate(date:Date)
{
  let dateFormatter = DateFormatter() 
  dateFormatter.dateFormat = "yyyy" 
  let nameOfyear = dateFormatter.string(from: date)
  dateFormatter.dateFormat = "MM"
  let nameOfMonth = dateFormatter.string(from: date)
  let urlString = Fetch_Parent_Dashboard_Calendar_URL+"&year="+nameOfyear+"&mo‌​nth="+nameOfMonth+"&‌​branch_id=" + Userbranchid!
}

现在从viewDidLoadviewWillAppear方法调用此方法Date()作为初始调用的输入参数。

override func viewDidLoad()
{
   super.viewDidLoad()
   self.callWebServiceWithDate(date: Date())
}

并从 FSCalendars 委托方法调用相同的方法

func calendar(_ calendar: FSCalendar, didSelect date: Date, at monthPosition: FSCalendarMonthPosition) 
{
   self.callWebServiceWithDate(date: date)
}
于 2017-11-21T06:59:14.467 回答