Swift代表传递信息

时间:2016-08-11 15:38:58

标签: ios swift delegates protocols

我无法遵守委托并在两个视图控制器之间传递信息。我似乎无法理解我做错了什么。我希望能够从CustomCell VC中的一个分段控件传递信息,以便在CreateEvent VC中点击按钮后接收并显示它。以下是相关代码:

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)


      }

}

2 个答案:

答案 0 :(得分:0)

我认为你的问题是你需要CreateEventVCCustomCell的实例,所以你可以写:

createEventVC.delegate = self

CustomCell内。

无论如何,我认为你不需要代表团,如果CustomCell内有CreateEventVC个实例,你可以从CreateEventVC调用CreateEventVC的公共/内部函数}:

cell.sendageDesciptiongetData(data)

答案 1 :(得分:0)

好像你有一个错字:

CustomCell方法

中缺少'r'
func sendageDesciptiongetData(data:String)

而不是

func sendageDescriptiongetData(data:String)