ios - 准备segue时的Segue特定值

标签 ios swift tags segue viewcontroller

现在我有 2 个按钮将文本字段数据从 vc1 转接到 vc2。我想让顶部按钮将文本字段中的任何内容转至 vc2。我希望底部按钮能够继续到下一个 vc。现在,两个按钮都将数据从文本字段延续到下一个 vc。

enter image description here

    import UIKit
class ViewController: UIViewController {
@IBOutlet var textfield: UITextField!
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    guard let c2 = segue.destination as? twoViewController else {return}
    c2.ss = textfield.text
}}

class twoViewController: UIViewController {
var ss: String!
@IBOutlet var datalbl: UILabel!
override func viewDidLoad() {
    super.viewDidLoad()
    datalbl.text = ss
}}

最佳答案

有两种方法可以解决这个问题:

使用发送者并设置按钮的标签值

senderprepare(for:sender:)是被按下的按钮,因此您可以为 2 个按钮设置唯一的标记值,然后检查:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    guard let c2 = segue.destination as? twoViewController else {return}
    if (sender as? UIButton)?.tag == 1 {
        c2.ss = textfield.text
    }
}

设置segues的标识符并在prepare(for:sender:)中检查它们

由于您有两个 Segue,请单击 Storyboard 中的 Segue 箭头,并在属性检查器中设置它们的标识符。属性检查器。您可以将顶部按钮的 Segue 标识符设置为 "sendTextField"然后在prepare(for:sender:)中检查这一点:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    guard let c2 = segue.destination as? twoViewController else {return}
    if segue.identifier == "sendTextfield" {
        c2.ss = textfield.text
    }
}

关于ios - 准备segue时的Segue特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49868634/

相关文章:

ios - 在继续下一个任务之前等待任务完成

iphone - 是否可以保留“应用程序报告”用户位置?

objective-c - 在 swift 中使用初始化器实现 Objective C 协议(protocol)

ios - 在 Swift 中将其分配给变量之前等待网络请求的结果

swift - 在 ARKit 中调整相机焦点

fonts - 使用iText将字体嵌入PDF文件

ios - NSDataBase64DecodingOptions 总是返回 nil

ios - 根据位置 Swift 在 Firebase 的 UITableView 中显示信息

android - 在连接的任何(空)NFC 上启动应用程序

html - 元标记中的初始比例、用户可缩放、最小比例、最大比例属性是什么?