我在使用容器视图和分段控件来实现切换视图时遇到了问题。我在一个视图控制器中放置了两个容器视图,每个容器视图都嵌入了一个新视图(同一个UIViewController中有三个视图控制器)。 / p>
这是我的代码
import UIKit
import Charts
class ReportViewController: UIViewController {
@IBOutlet weak var containerTwoWeeks: UIView!
@IBOutlet weak var containerToday: UIView!
@IBOutlet weak var segUi: UISegmentedControl!
@IBOutlet weak var resultLabel: UILabel!
@IBOutlet weak var paymentPie: PieChartView!
@IBOutlet weak var incomePie: PieChartView!
override func viewDidLoad() {
super.viewDidLoad()
// pieChartUpdate()
// selectResultData()
}
@IBAction func segChange(_ sender: UISegmentedControl) {
switch segUi.selectedSegmentIndex {
case 0:
self.containerTwoWeeks.isHidden = false
self.containerToday.isHidden = true
break
case 1:
self.containerTwoWeeks.isHidden = true
self.containerToday.isHidden = false
break
default:
break
}
}
func selectResultData() {
resultLabel.attributedText = reportService.selectResultData()
}
func pieChartUpdate () {
(too much code here, ignore it)
}
}
一切正常,直到我在vieDidLoad()中调用方法pieChartUpdate()或selectResultData(),错误信息如下
"线程1:致命错误:在展开可选值时出乎意料地发现nil"
我可以在不调用pieChartUpdate()或selectResultData()方法的情况下切换视图,所以我真的想知道原因和解决方案。希望有人能解决这个问题,谢谢。
答案 0 :(得分:0)
你有一个非常常见的错误和错误。但别担心。
检查完整的错误消息。必须知道您尝试访问哪些变量并获得nil(可能是resultLabel
)。
然后确保此变量的storyboard和视图控制器之间的连接正确。如果你没有弄错,你可以尝试删除并重新创建它。
如果您需要更多帮助,请向我们展示完整的错误消息。