我正在学习Swift 2并将旧的Objective-C代码更改为swift。
我只是在笔尖放了一个UILabel并将它连接到nib的控制器。
该代码适用于模拟器(iOS 8.4和iOS 9),但在设备上崩溃(iPhone 4s和iPhone 5s,均为iOS 8.4),崩溃信息为:fatal error: unexpectedly found nil while unwrapping an Optional value
。
以下是相关代码:
我的视图控制器中的代码:
var round: Int = 0
@IBOutlet weak var nextRoundLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.nextRoundLabel.text = "\(self.round)"
}
}
推送viewController的代码:
let rvc = RoundViewController()
rvc.modalTransitionStyle = UIModalTransitionStyle.PartialCurl
rvc.round = 1
self.navigationController?.pushViewController(rvc, animated: true)
错误发生时的实例:
答案 0 :(得分:1)
我遇到了与iOS8.4相同的问题。推送视图控制器时,应指定nib名称。为此,在RoundViewController中覆盖init。
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
并实现控制器:
let rvc = RoundViewController(nibName: "RoundViewController")