2015-01-13 4 views
0

Я начинаю, поэтому прошу прощения за все, что кажется пропущенным или простеньким.UILabel to UILabel

В основном, я пытаюсь сделать выбор даты на экране, обновить UILabel, а затем взять этот результат обновления UILabel и направить его обратно на другой UILabel на предыдущем экране. У меня есть команда выбора даты, и она обновляет UILabel, как и ожидалось, но я не могу понять, как ее кодировать, чтобы я мог обновить первый UILabel с результатами DatePicker. Вот что я имею для DatePicker.

class StartDatePickerViewController: UIViewController { 


    @IBOutlet weak var dateLabel: UILabel! 
    @IBOutlet weak var datePicker: UIDatePicker! 


    override func viewDidLoad() { 
    super.viewDidLoad() 

    datePicker.addTarget(self, action: Selector("datePickerChanged:"), forControlEvents: UIControlEvents.ValueChanged) 

    // Do any additional setup after loading the view. 
} 

func datePickerChanged(datePicker:UIDatePicker) { 
    var dateFormatter = NSDateFormatter() 

    dateFormatter.dateStyle = NSDateFormatterStyle.ShortStyle 

    var strDate = dateFormatter.stringFromDate(datePicker.date) 
    dateLabel.text = strDate 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

мне нужно StartDatePickerViewController обновить свой UILabel startDateLabel на AddNewTradeViewController, и я не знаю, как подойти к этому правильно. Любой совет будет очень благодарен!

ответ

1

Вы можете использовать NSNotification Add Observer или Delegation, это будет лучше, если сравнивать с отправкой данных напрямую, чтобы вы могли следовать этому шаблону. Когда вы когда-либо будете выходить из второго режима viewController в first-viewController, вы можете вызвать шаблон делегирования или NSNotification Observer (если вы хотите показать свои данные ярлыков более чем в одном месте, то вы можете использовать NSNotification). в противном случае шаблон делегирования будет хорош для передачи одного-одного сообщения. Надеюсь, это будет полезно для вас.

0

Вы должны использовать шаблон, называемый делегированием. Это означает, что вы вызываете указанный метод в AddNewTradeViewController из datePickerChanged.

Как настроить делегирование в Swift можно найти here.

0

Что я понимаю из вашего вопроса, вы хотите обновить UILabel на первом экране, когда вы отталкиваете его от SecondView.

если мое понимание в порядке, сделайте следующее.

Сначала определите одно свойство NSString в вашем первом View Controller

@property (strong, nonatomic) NSString* lblString; 

Теперь в то время как popback к вашему firstviewContoller от вашего secondViewController просто присвоить обновленное значение его Собственость названный как lblString.

UINavigationController сохранить список всех толкнул контроллер в viewControllers и корневой контроллер всегда на 0.

Firstcontroller *firstcontroller = (Firstcontroller *)[self.navigationController.viewControllers objectAtIndex:0]; 
myController.lblString = @"Your Updated DatePickerValue" ; 
[self.navigationController popToViewController:myController animated:YES]; 

Теперь lblString имеет обновленное значение, когда вы popBack в firstViewcontroller и вы можете использовать везде, где вы хотите использовать в firstViewController.

+0

Это определенно звучит правильно, все хорошие ответы. Моя проблема сейчас, я понятия не имею, как расшифровать в Свифт как раз еще .. Ха-ха какая-то помощь там? – trever