如何在iOS(Xcode)的提交按钮内实现分段控制?



我在提交按钮内有一个性别的分段控件,但是,它给出了一个错误,指出:

"无法将"字符串"类型的值分配给"UISegmentedControl!"">

有没有人知道如何正确编码按钮内的分段控件,以便当用户单击提交按钮时,它会在页面上显示所选性别?

编辑:我试图回答的问题是:

">

实施一个应用程序,其中包含姓名、地址和步进器(用于年龄(的输入字段以及两个分段控件(用于"男性/女性"和"已注册/未注册"(。当用户单击提交按钮时,它会在页面上显示消息,例如"您好姓名"、"地址:地址"、"年龄:年龄"、"性别:男性/女性"、"状态:已注册/未注册"。">

这是我的编码:

import UIKit
class ViewController: UIViewController {
@IBOutlet weak var nametxt: UITextField!
@IBOutlet weak var age: UIStepper!
@IBOutlet weak var addresstxt: UITextField!
@IBOutlet weak var status: UISegmentedControl!
@IBOutlet weak var gender: UISegmentedControl!
@IBOutlet weak var display: UILabel!

override func viewDidLoad() {
super.viewDidLoad()
age.wraps = true
age.autorepeat = true
age.maximumValue = 100
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func submit(_ sender: Any) {
var txtname : String
var txtaddress : String
txtname = nametxt.text!
txtaddress = addresstxt.text!

if self.gender.selectedSegmentIndex == 0 {
gender = "male"
}
if self.gender.selectedSegmentIndex == 1 {
gender = "female"
}
display.text = "Hello " + txtname + ", " + "Address: " + txtaddress  
+ ", " + "Gender: " + gender
}
}

发生此错误的原因由编译器简单地描述:)只需使用字符串而不是分段控制...性别是分段控件类型,因此您无法将其与其他字符串连接...

使用titleForSegment(at:)获取正确的字符串值

display.text = "Hello " + txtname + ", " + "Address: " + txtaddress
+ ", " + "Gender: " + gender.titleForSegment(at: gender.selectedSegmentIndex)

你可以摆脱上面的条件...

另一种选择是在IBAction内设置新的私有财产

@IBAction func submit(_ sender: Any) {
// Fixed your codestyle and semantics as well
let txtname = nametxt.text ?? "missing name"
let txtaddress = addresstxt.text ?? "missing address"
let txtgender = gender.titleForSegment(at: gender.selectedSegmentIndex)
display.text = "Hello " + txtname + ", " + "Address: " + txtaddress  
+ ", " + "Gender: " + txtgender
}
}

'https://developer.apple.com/documentation/uikit/uisegmentedcontrol/1618561-titleforsegment

最新更新