Внутри замыкания, в котором вы создаете mySegmentConstrol
, self
не относится к тому, что, по вашему мнению, он делает. В этом случае self
относится к чему-то типа (ViewController) -> () -> ViewController
, что определенно не то, что вы хотите:
Для ссылки на текущий экземпляр ViewController
, объявите mySegmentControl
как lazy var
:
lazy var mySegmentControl: UISegmentedControl = {
Это должно привести к правильному срабатыванию селектора сегментированных элементов управления.
Что касается отображения * 1020 вашего элемента навигации *, ну ... вы не можете этого сделать, и показывают настраиваемый вид в titleView
панели навигации. Одно или другое.