Между
let segmentedControl = GSegmentedControl(frame: .zero)
и
segmentedControl.setTitle("Daily", forSegmentAt: 0)
segmentedControl.setTitle("Subject", forSegmentAt: 1)
вы не установили numberOfItems, поэтому у вас есть счетчик 0, но вы пытаетесь получить доступ к первому (и второму) индексу.
Чтобы исправить это, измените init:
let segmentedControl = GSegmentedControl(items: ["Daily", "Subject"])
и удалите setTitle .. lines
или измените строки setTitle на
segmentedControl.insertSegment(withTitle: "Daily", at: 0, animated: false)
segmentedControl.insertSegment(withTitle: "Subject", at: 1, animated: false)