2016-08-11 7 views
1

У меня возникают проблемы с соответствием делегату и передачей информации между двумя контроллерами. Я не могу понять, что я делаю неправильно. Я хочу иметь возможность передавать информацию из одного сегментированного элемента управления в CustomCell VC, чтобы получать и отображать его после нажатия кнопки в CreateEvent VC. Вот соответствующий код:Swift Delegate Информация о проезде

CustomCell VC:

class CustomCell: CreateEventVCDelegate { 

     var ageDescription : String = String() // setup global variable 

     func sendageDesciptiongetData(data:String) { 
      print(ageDescription) 
     } 

     @IBAction func ageChanged(sender: UISegmentedControl) { 
      switch age.selectedSegmentIndex { 
      case 0: 
       print("Under 18") 
       var ageDescription = "under 18" 
      case 1: 
       print("Over 18") 
       var ageDescription = "over 18" 
      case 2: 
       print("Strictly over 21") 
       var ageDescription = "strictly over 21" 
      default: 
       print("Other") 

    } 

} 

} 

CreateEvent VC:

protocol CreateEventVCDelegate { 
     func sendageDescriptiongetData(ageDescription: String) 
} 

class CreateEventVC: UIViewController { 

     var delegate: CreateEventVCDelegate? 

     @IBAction func saveButtonTapped(sender: UIBarButtonItem) { 
      var ageDescription = "" 

      delegate!.sendageDescriptiongetData(ageDescription) 


     } 

} 
+1

Как вы переходите от одного контроллера к другому? Через segue в раскадровке или программно? –

+0

Я хочу, чтобы иметь возможность передать ageDescription, который выбран из сегментированного элемента управления в другой VC (при нажатии кнопки saveButton) – Kevin

+0

Но как вы переходите от одного VC к другому? Вы создаете его в коде или просто через раскадровки? –

ответ

0

Я думаю, что вы проблема в том, что вам нужен экземпляр CreateEventVC внутри CustomCell так что вы можете написать:

createEventVC.delegate = self 

внутри CustomCell.

Во всяком случае, я думаю, что вам не нужна делегация, если у вас есть экземпляр CustomCell внутри CreateEventVC вы можете вызвать общественную/внутреннюю функцию CreateEventVC из CreateEventVC:

cell.sendageDesciptiongetData(data) 
0

Кажется, у вас есть опечатка :

Вы не хватает 'г' в CustomCell методе

func sendageDesciptiongetData(data:String) 

вместо от

func sendageDescriptiongetData(data:String) 
Смежные вопросы