22349


表題の通りですが、  
お尋ねしたいことは、２点あります。

①UISegmentedControlの値と表示をリセットすることは可能ですか？  
②リセットをするのは「決定」のUIButtonを押したタイミングです。

stroyboardに配置したUISegmentedControlを使って、３つ（仮にa,b,cとします）の内から１つを選択し、「決定」のUIButtonを押して、そのViewでの処理が一旦終了した後、画面遷移をしないで、UISegmentedControlの値と表示をリセットして、最初の場面に戻すことはできますか？  
下記のように最初の画面で、Selectedはチェックを外して３つの内、どれも選択していない状態だと仮定した場合です。

よろしくお願いします。

[![画像の説明をここに入力](https://i.stack.imgur.com/Tlkhz.png)](https://i.stack.imgur.com/Tlkhz.png)


CC BY-SA 3.0
2016-02-21T05:17:27.023
22336
2016-02-21T09:37:17.530
13156
question
ios swift xcode
storyboard上のUISegmentedControlで処理終了後、値と表示をリセットすることはできますか？


あなたのご質問には不明な点が幾つかあるのですが、とりあえず適当に推測を交えて回答を書いておきます。ご質問の意図と異なる場合は、コメント等でお知らせください。

「そのViewでの処理が一旦終了した後」  
通常であれば、ボタンなどのAction処理は(Viewでなく)ViewControllerに記載していると思います。ここでは、ViewController内にボタンの処理を書いているものとしておきます。  
「画面遷移をしないで」  
通常のiOSアプリでは、意図的に画面遷移の処理を記述しなければ画面遷移は発生しませんので、なぜわざわざこのことを書かれているのか意図がわかりません。ここでは普通に処理すればいいと仮定しておきます。  
「UISegmentedControlの値と表示をリセット」  
こちらも、通常の使い方をしている限りUISegmentedControlの値(この「値」というのもなんの値なのかわからないのですが)と表示は連動しているので、なぜ「値と表示」と明記されているのかわかりません。とりあえず「３つの(segmentの)内、どれも選択していない状態」に戻せばいいことにしておきます。

と上記のような仮定のもとで、UISegementedControlを操作したいということであれば、やはりUISegmentedControlのリファレンスを最初に参照してください。  
[UISegmentedControl Class
Reference](https://developer.apple.com/library/ios/documentation/UIKit/Reference/UISegmentedControl_Class/index.html#//apple_ref/doc/uid/TP40006807)  
[selectedSegmentIndex](https://developer.apple.com/library/ios/documentation/UIKit/Reference/UISegmentedControl_Class/index.html#//apple_ref/occ/instp/UISegmentedControl/selectedSegmentIndex)プロパティにはこのようにあります。  
_Set this property to -1 to turn off the current selection._  
(技術文書の英語なぞ中学生レベルで理解できるものですので、恐れずにそれっぽいプロパティやメソッドを探してください。)  
このプロパティを-1にすれば現在の選択をオフにできると書いてあります。

[code]

    @IBAction func buttonPressed(sender: UIButton) {
        //UIButtonが押されたときの処理
        //...
        segmentedControll.selectedSegmentIndex = -1;
    }
    
[/code]

前半を埋め尽くしてしまうくらい推測だらけですので、あなたのコードに使えるかどうかわかりませんが、可能であればお試しください。(当然@IBOutletや@IBActionは正しく接続しておいてください。)


CC BY-SA 3.0
2016-02-21T08:06:17.733
22349
2016-02-21T09:37:17.530
2016-02-21T09:37:17.530
13972
13972
22336
answer