2017-03-17 13 views
0

おはよう。私はここで何が間違っているのか分かりませんが、私はviewWillAppearでイメージを色付けしようとしています。そして、ボタンをクリックすると、次のコントローラにつなぎます。しかし、私が色をつけたとき、それは変化していますが、私のボタンを押して、それを壊すのです。私のコードは次のとおりです。迅速な色付けイメージ:致命的なエラー:アンラッピング中に予期せず見つからない任意の値

@IBOutlet weak var welcomeLabel: UILabel! 
@IBOutlet weak var logoImageView: UIImageView! 

override func viewDidLoad() { 
    super.viewDidLoad() 

} 

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(animated) 

    self.navigationController?.setNavigationBarHidden(true, animated: true) 

    let logo = UIImage(named: "UnifiedLogo.png") 

    if let imageForLogo = logo{ 
     let templateImage = imageForLogo.withRenderingMode(UIImageRenderingMode.alwaysTemplate) 
     print(templateImage) 
     logoImageView.image = templateImage 
     logoImageView.tintColor = UIColor.white 
    } 
} 

と破線は、郵便番号の下に示されています。

breaking point with error message

debug screen

私はコンセントがリンクされていることを確認しており、それらが全てです。

ご協力いただければ幸いです。

+0

チェックアウトレット 'logoImageView'が正しくのViewControllerが接続されていますか? –

+0

@NiravDはいそれは – devSA

答えて

0

imageviewのコンセントが正しく接続されているかどうかチェックする必要があります。

+0

です質問を投稿する前でもこれを行いましたが、何も接続していない店舗を確認しました/ – devSA

+0

このコードをviewDidLoadで試しましたか?試してみてください。 –

0

あなたはApple documentationを見ればviewWillAppearが呼ばれたときに、ビューはビュー階層にまだ追加されていません。

view​Will​Appear(_:​)

This method is called before the view controller's view is about to be added to a view hierarchy and before any animations are configured for showing the view

したがって、あなたはそれでビューコントローラのoulets変数を参照することができません。

代わりに、ビュー階層がロードされると呼ばれる、viewDidLoadであなたのコードを移動:

view​Did​Load()

This method is called after the view controller has loaded its view hierarchy into memory.

+0

私は質問を投稿する前でもこれをやったが、何も接続していない店舗をチェックした。 – devSA

+0

@devSA 'viewDidLoad'はコードを置くのに適している。そこで動作していない場合は、コンセントが接続されていないか、接続されていますが、ビューが割り当て解除されています。 'viewDidLoad'にコードを入れて、' IBOutlet'宣言から 'weak'キーワードを削除してください。それでも問題が解決されない場合は、接続はありません。 – JeremyP

関連する問題