web-dev-qa-db-ja.com

UISegmentedControlで選択したセグメントインデックスを設定する方法

ここでアプリのクラッシュを回避しようとしています... UISegmentedControlからセグメントを削除するボタンがあります。そのボタンが押され、ユーザーが削除するセグメントを選択している場合、セグメントは削除され、選択は強調表示されません。ただし、selectedSegmentIndexを取得するアクションを実行する別のボタンを押すと、アプリがクラッシュします。

要するに:UISegmentedControlでセグメントの選択を強制する方法はありますか?

編集 UISegmentedControlは、セグメントが選択されていないときに-1のselectedSegmentIndexを返しているように見えます...ここからできることを見てみましょう。

34
esqew

このように使用します.. yourSegmentname.selectedSegmentIndex = 1; //または必要なセグメント

75
neillo

このコードは、Swift 2.0

@IBOutlet weak var segmentcontroll: UISegmentedControl!
    @IBAction func segmentneeded(sender: AnyObject)
        {

            if(segmentcontroll.selectedSegmentIndex==0)
            {
                self.view.backgroundColor=UIColor.purpleColor()
                segmentcontroll.selectedSegmentIndex=UISegmentedControlNoSegment
            }
            else if(segmentcontroll.selectedSegmentIndex==1)
            {
                    self.view.backgroundColor=UIColor.yellowColor()
                            segmentcontroll.selectedSegmentIndex=UISegmentedControlNoSegment
            }
            else
            {
                self.view.backgroundColor=UIColor.grayColor()
                            segmentcontroll.selectedSegmentIndex=UISegmentedControlNoSegment
            }
        }
3
Kishore Kumar