2017-05-17 15 views
0

私は1つのビューコントローラでプロトコルを宣言し、ビューコントローラを表示している関数を呼び出すことにしました。私はストーリーボードを使用していません。スウィフトプロトコルデリゲートが予期せずUIViewControllerでnilを見つけました

このdelegate!.setWishListButton()は、エラーunexpectedly found nil while unwrapping an optionalを引き起こします。私は使用すべきではないことを知っている!デリゲート関数が呼び出されることはないので、テスト用です。

私はこれに関する多くの質問があることを知っていますが、私の使用法には一致しません。私はうまく動作するUIViewで同様のパターンがあります。

は、ここで私はそれがボタンを押すことにより、提示された機能で、私のビューコントローラの2番目の宣言を削除した後、これが働い

class anotherViewController: UIViewController, SetWishListButtonDelegate { 

let myViewController = MyViewController() 

override func viewDidLoad() { 
    super.viewDidLoad() 

    myViewController.delegate = self 
} 

func setWishListButton() { 

    print("DELEGATE METHOD FIRED") 

    wishListButton.isSelected = true 
} 
+0

'someFunction'はどこから呼び出されていますか? –

+0

質問が編集されました。呼び出し元関数はAPIを呼び出してから代理人を呼び出します。 – markhorrocks

答えて

0

別のビューコントローラで私のコード

protocol SetWishListButtonDelegate { 
    func setWishListButton() 
} 

class MyViewController: UIViewController { 

var delegate : SetWishListButtonDelegate? 

------ 

    func toggleWishListButton() { 

    delegate?.setWishListButton() 
} 

です。

関連する問題