2017-01-15 7 views
-1

Итак, позвольте мне объяснить мой вопрос. У меня есть 2 ViewControllers. В 1-й ВК я имею некоторые ярлыки, которые я хочу обновить от 2 VC (представлены модально) enter image description hereПолучить доступ к IBOutlet из другого класса и обновить UILabel

enter image description here

Также я имею функцию, которая отклоняет 2nd VC

@IBAction func approveDepart(_ sender: UIButton) { 
    removeAnimate() 

} 

& переменной с сохраненные данные из календаря

var someString: String? 

В этой функции:

func calendar(_ calendar: MDCalendar, didSelect date: Date?) { 
    let today = date 

    //Date For API 
    let dateFormatter = DateFormatter() 
    dateFormatter.dateFormat = "yyyy-MM-d" 
    let apiDate: NSString = dateFormatter.string(from: today!) as NSString 

    //Date for week day 
    let dateFormatter1 = DateFormatter() 
    dateFormatter1.dateFormat = "EEE" 
    let weekDay: NSString = dateFormatter1.string(from: today!) as NSString 

    //Date for week number 
    let dateFormatter2 = DateFormatter() 
    dateFormatter2.dateFormat = "dd" 
    let weekNumber: NSString = dateFormatter2.string(from: today!) as NSString 

    //Date for month name 
    let dateFormatter3 = DateFormatter() 
    dateFormatter3.dateFormat = "MMM" 
    let monthName: NSString = dateFormatter3.string(from: today!) as NSString 

    someString = weekDay as String 


} 

Любые идеи, как достичь этого? :)

+0

http://stackoverflow.com/documentation/ios/434/passing-data-between-view-controllers/2520/using-the-delegate-pattern- pass-data-back # t = 20170115010844067429 – vacawama

+0

@vacawama Что вы! Я прочитал это –

ответ

-1

Найдено решение :)

let rootViewController = UIApplication.shared.keyWindow?.rootViewController 

    if let customViewController = rootViewController as? ChoseFlyView { 

     customViewController.departDay.text = someString 
    } 
+2

Существенно нарушает [«Закон Деметры»] (https://en.wikipedia.org/wiki/Law_of_Demeter), доступ к чему-то внутри другого класса. Вместо этого экспортируйте метод для внесения изменения, вызывающий не должен знать, как данные обрабатываются экземпляром вызываемого класса. Пример в реальном мире: попросите друга за доллар, не заходите в карман за ним, и вы не должны даже там, где ваш друг держит свои деньги. – zaph

Смежные вопросы