委托快速通过nil

时间:2015-11-23 13:55:01

标签: swift delegates

我正试图与代表交手,但我设立的代表似乎是零,我不知道为什么。我有一个HomeViewController游戏从哪里开始,然后是UITableViewController,其中玩家从表中选择一行。然后使用行索引来提取要在游戏中使用的数据。 UITableViewController会回到游戏开始的HomeViewController。我以为我已经使用了正确的协议并委托代码,但delegate似乎是nil。 任何帮助非常感谢!

import UIKit
import Foundation

class HomeViewController: UIViewController, WordListsTableViewControllerDelegate {

override func viewDidLoad() {
     super.viewDidLoad()
     // sets up the game here
}

func wordListSelected(selectedWordList: Int) {
        // passes the index path of the table to the AppWordList class to create the wordList for the game.
        controller.wordList = AppWordList(wordListNumber: selectedWordList)

}

并在TableViewController

import UIKit

protocol WordListsTableViewControllerDelegate {
    func wordListSelected(selectedWordList: Int)
}

class WordListsTableViewController: UITableViewController {

var delegate: WordListsTableViewControllerDelegate?

override func viewDidLoad() {
    super.viewDidLoad()
    reloadData()
    tableView.reloadData()
}

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

        var selectedWordList = Int()

        if (indexPath.section) == 2 {
            selectedWordList = (indexPath.row) // Console shows the row is being selected ok.
            delegate?.wordListSelected(selectedWordList) // IS NIL ???     
            // exit segue back to the HomeVC
            performSegueWithIdentifier("startGameSegue", sender: nil)

        }
}

0 个答案:

没有答案