ios - 如何在iOS(Xcode)中的提交按钮内实现分段控制?
问题描述
我在提交按钮中有一个针对性别的分段控件,但是,它给出了一个错误说明:
“无法将类型“String”的值分配给类型“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
}
}
解决方案
发生此错误的原因由编译器简单描述:) 只需使用 String 而不是 SegmentControl... 性别是 SegmentControl 类型,因此您不能将其与其他字符串连接...
用于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
推荐阅读
- git - 解决 git auto merge from release branch to master 冲突
- c# - Window.MakeKeyAndVisible() 未在 iOS 13 及更高版本操作系统中显示新窗口
- javascript - 外部 JS 未链接到 HTML
- javascript - null 不是一个对象(评估 '_ExponentNotifications.default.cancelAllScheduledNotificationsAsync') React Native
- django - 如何“log-maxsize” uWSGI vassal 记录器?
- java - 替换时不将片段添加到后堆栈
- .net - 没有 Visual Studio .NET 版本
- c# - 遵循指南后,Xamarin iOS 应用程序被 UIWebView 拒绝
- akka-stream - 停止时跳过部分流
- javascript - React 中的 Dygraphs