我正在尝试在另一个视图控制器上设置UILabel的值。但是,当我尝试为其他视图控制器的UILabels等设置临时值时,我一直得到一个零值。这是执行segue的函数:
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
在尝试声明出口的临时值时,我有什么遗漏的东西吗?
答案 0 :(得分:1)
您不应该设置这些相关的UI元素,因为UI尚未加载。而是传递一个值并将其设置在目标控制器的viewDidLoad
class OnDeck: UIViewController {
var color = UIColor.white()
override func viewDidLoad() {
...
firstBase = color
}
}
然后在您的swipe
方法中,仅传递值,而不是修改已卸载的UILabel
或UIView
。否则,将UI相关代码移动到目标viewDidLoad()
,例如cornerRadius,帧大小等