habe ich eine segmentierte Kontrolle in meinem Drehbuch, das wie folgt aussieht:IOS Segmented Steuerung: nicht ändern kann Ausgewählte Segment
Dann habe ich eine IBAction erstellt für wenn der Wert des Steueränderungen:
@IBAction func segmentValChanged(_ sender: UISegmentedControl) {
print("touched")
if (sender.selectedSegmentIndex == 0) {
sender.selectedSegmentIndex = 1;
}
else{
sender.selectedSegmentIndex = 0;
}
}
Das einzige Problem ist, dass diese Funktion nie aufgerufen wird! Wenn ich auf die Schaltfläche Jokes (Beta) klicke, passiert nichts.
Allerdings, wenn ich eine IBOutlet für die Steuerung erstellt und versucht, das ausgewählte Segment in meinem viewDidLoad()
zu ändern, es hat funktioniert:
segmentedController.selectedSegmentIndex = 1
Ich weiß, dass ich wahrscheinlich etwas offensichtlich verpasst, da ich nie ein verwendet haben segmentierte Kontrolle vor. Vielen Dank, wenn jemand darauf hinweisen kann, was das ist. Prost!
import UIKit
import Alamofire
class ViewController: UIViewController {
var currentImage: CurrentImage!
var parameters: Parameters!
@IBOutlet weak var segmentedController: UISegmentedControl!
@IBAction func segmentValChanged(_ sender: UISegmentedControl) {
print("touched")
if (sender.selectedSegmentIndex == 0) { // switch to 1
sender.selectedSegmentIndex = 1;
}
else{
sender.selectedSegmentIndex = 0;
}
}
override func viewDidLoad() {
super.viewDidLoad()
segmentedController.selectedSegmentIndex = 1
self.segmentedController.addTarget(self, action: #selector(segmentValChanged(_:)), for: .valueChanged)
}
}
Und das ist, wie es aussieht, wenn ich die Ansicht der rechten Maustaste:
Haben Sie ** diese Funktion in IB an '.valueChanged' gebunden? – dfd
Ja, ich habe das getan –
Der Cosole druckt die "Touched" Nachricht? –