2017-06-11 14 views
0

別のView ControllerでUILabelの値を設定しようとしています。しかし、他のView ControllerのUILabelsなどの一時的な値を設定しようとしているときは、値がゼロになっています。これはセグエを実行機能である:VC別のVCの値を設定する際にエラーが発生する

func swipe(Sender: UISwipeGestureRecognizer!) { 
    print("swiped left") 
    let vc = self.storyboard!.instantiateViewControllerWithIdentifier("OnDeck") as! OnDeck 
    vc.firstBase = UIView(frame: CGRectMake(178, 136, 10, 10)) 
    vc.firstBase.backgroundColor = UIColor.redColor() 
    vc.firstBase.layer.cornerRadius = vc.firstBase.frame.size.width/2 

    self.presentViewController(vc, animated: true, completion: nil) 
} 

私はラインvc.firstBase.backgroundColor = UIColor.redColor()

fatal error: unexpectedly found nil while unwrapping an Optional value 

に次のエラーを取得していますコンセントの一時値を宣言しようとしたとき、私は行方不明です何かがあるのでしょうか?

答えて

1

UIがまだロードされていないため、関連するUI要素を設定しないでください。代わりに、値を通過して、swipe方法で宛先コントローラ次に

class OnDeck: UIViewController { 

    var color = UIColor.white() 
    override func viewDidLoad() { 

     ... 
     firstBase = color 
    } 

} 

viewDidLoadでそれを設定し、値を渡すだけではなく、アンロードUILabel又はUIViewを変更します。そうでない場合は、UI関連のコードをcornerRadius、フレームサイズなどのviewDidLoad()の宛先に移動します。

関連する問題