Как получить переменную дня недели - Swift 2, Xcode, ViewController.swift

Я новичок в кодировании. Я просто хочу, чтобы кто-нибудь сказал мне, как я могу получить переменную дня недели в своем коде и куда ее поместить. Я помещаю его в ViewController.swift, AppDelegate.swift, где?

Затем я хочу запрограммировать кнопку для перехода к определенному контроллеру представления с помощью PerformSeguewithIdentifier. Я сделал идентификаторы 1Mon, 1Tue, 1Wed, 1Thu и 1Fri, каждый из которых переходит от одного контроллера представления к другому.

Когда вы предоставляете переменный код дня недели, мне нужно знать, куда его вставить, потому что это сбивает меня с толку. Когда я получу код, как мне реализовать его на кнопке. Я пытался это сделать.

@IBAction func Wk1(sender: AnyObject) {
            if var weekDay == "Monday" {
            performSegueWithIdentifier("1Mon", sender: nil)
        }
    }

Я понятия не имею, куда поместить код для создания переменной weekDay, так что это одна из возможных причин, почему этот код не работает. Я также не знаю, как отформатировать команду if при включении переменной. Я попытался поместить код, который мне дали и нашли, в AppDelegate.swift, а в ViewController.swift я попытался поместить его под @IBAction func Wk1(sender: AnyObject) { и под import UIKit. Все 3 не работали. Я попытался использовать следующий код.

func getDayOfWeek(today:String)->Int? {
    let formatter  = NSDateFormatter()
    formatter.dateFormat = "yyyy-MM-dd"
    if let todayDate = formatter.dateFromString(today) {
        let myCalendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!
        let myComponents = myCalendar.components(.CalendarUnitWeekday, fromDate: todayDate)
        let weekDay = myComponents.weekday
        return weekDay
    } else {
        return nil
    }
}

person Dylan A    schedule 04.09.2015    source источник
comment
Я думаю, у вас есть действие кнопки где-то. Таким образом, код dayOfWeek должен быть включен в действие этой кнопки. Нажав эту кнопку, вы решите, какой segueIdentifier вызывать, а затем вызовете его.   -  person Shamas S    schedule 05.09.2015
comment
Прямо под @IBAction? И я получаю ошибки при реализации кода. Можете ли вы сказать, готов ли он к Swift 2 или нет?   -  person Dylan A    schedule 05.09.2015
comment
Да. Кроме того, вы откуда-то получаете строку даты? или вы принимаете решение на текущую дату?   -  person Shamas S    schedule 05.09.2015
comment
не знаю если честно! Следует использовать дату с телефона.   -  person Dylan A    schedule 05.09.2015
comment
Вы не понимаете мой вопрос? Или вы не уверены в требованиях под рукой?   -  person Shamas S    schedule 05.09.2015
comment
Следует просто использовать текущую дату на телефоне. Не из интернет-источника и т. д.   -  person Dylan A    schedule 05.09.2015
comment
Можете ли вы также сказать мне, как отформатировать получение команды if из переменной, и не могли бы вы продемонстрировать код, используя один из моих переходов, перечисленных в вопросе? @iosDev82   -  person Dylan A    schedule 05.09.2015
comment
Обновил ответ. Измените свои segueIdentifiers на имена daysDay, чтобы вам не приходилось использовать ужасные переменные, такие как «1Mon».   -  person Shamas S    schedule 05.09.2015


Ответы (1)


Вам нужно реструктурировать свой код следующим образом.

@IBAction func Wk1(sender: AnyObject) {
    var date = NSDate()
    let formatter  = NSDateFormatter()
    formatter.dateFormat = "EEEE"
    var weekDayString = formatter.stringFromDate(date)
    performSegueWithIdentifier(weekDayString, sender: nil)
}
person Shamas S    schedule 05.09.2015
comment
Фантастика! Где я могу указать день и мои идентификаторы перехода, например. 1Пн, 1Вт и т.д. - person Dylan A; 05.09.2015
comment
@DylanA Измените свои идентификаторы перехода на полные имена, такие как понедельник, вторник. Кроме того, проголосуйте и примите ответ, если вы нашли его полезным. - person Shamas S; 05.09.2015
comment
Не могли бы вы добавить пример того, как я бы реализовал его с помощью идентификатора. Я хочу создать это снова в том же приложении еще на неделю — это приложение школьного планировщика, которое вы видите, и моя школа работает по двухнедельной системе расписания. - person Dylan A; 05.09.2015
comment
@DylanA Я не понимаю, что вы подразумеваете под другим идентификатором. Для каждого другого дня он будет возвращать другой день недели, и будет вызываться другой segueIdentifier. - person Shamas S; 05.09.2015
comment
Если я снова реализую этот код с другим набором переходов 2Monday, 2Tuesday, где я могу просто ударить в 2. - person Dylan A; 05.09.2015
comment
объединить перед неделейDayString. - person Shamas S; 05.09.2015
comment
Получается performSegueWithIdentifier(2weekDayString, sender: nil) }? И нужно ли мне помещать какой-либо код до этого в любом месте? - person Dylan A; 05.09.2015
comment
Где бы я поставил 2 в этом фрагменте кода, мой вопрос - person Dylan A; 05.09.2015
comment
У меня есть 2 недели, каждый день с расписанием. 10 контроллеров представления, каждый из которых имеет расписание на каждый день. Я знаю, что в первую неделю это вопрос понедельника, вторника и т. Д. В качестве имен переходов. На вторую неделю, чтобы избежать конфликта, я буду вставлять 2 впереди, где мне поставить эту 2 в той строке кода, которую вы указали. - person Dylan A; 05.09.2015