Swift如何使用容器视图和分段控件

时间:2017-11-04 10:05:34

标签: ios swift

我在使用容器视图和分段控件来实现切换视图时遇到了问题。我在一个视图控制器中放置了两个容器视图,每个容器视图都嵌入了一个新视图(同一个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()方法的情况下切换视图,所以我真的想知道原因和解决方案。希望有人能解决这个问题,谢谢。

1 个答案:

答案 0 :(得分:0)

你有一个非常常见的错误和错误。但别担心。

检查完整的错误消息。必须知道您尝试访问哪些变量并获得nil(可能是resultLabel)。

然后确保此变量的storyboard和视图控制器之间的连接正确。如果你没有弄错,你可以尝试删除并重新创建它。

如果您需要更多帮助,请向我们展示完整的错误消息。