ここでアプリのクラッシュを回避しようとしています... UISegmentedControlからセグメントを削除するボタンがあります。そのボタンが押され、ユーザーが削除するセグメントを選択している場合、セグメントは削除され、選択は強調表示されません。ただし、selectedSegmentIndexを取得するアクションを実行する別のボタンを押すと、アプリがクラッシュします。
要するに:UISegmentedControlでセグメントの選択を強制する方法はありますか?
編集 UISegmentedControlは、セグメントが選択されていないときに-1のselectedSegmentIndexを返しているように見えます...ここからできることを見てみましょう。
このように使用します.. yourSegmentname.selectedSegmentIndex = 1;
//または必要なセグメント
このコードは、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
}
}