ios - 将文本从 View 中的 TextLabel 传递到另一个 View 中的标签

标签 ios swift xcode

我在 ViewController VC 中有一个 TextLabel,只要用户在其中放置文本,它将接收用户的输入。然后,按下按钮,TextLabel 上的文本将传递到 SecondView VC 上的标签上。但问题是我尝试了多种方法将 TextLabel 中的文本设置为 secondaryView VC 上的 Label。

这是我尝试的第一种方法:

这是我的 ViewController.swift 文件。


class ViewController: UIViewController {
    
    var text: String = ""
    
    @IBOutlet weak var mainViewTextLabel: UITextField!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        func prepare(for segue: UIStoryboardSegue, sender: Any?) {
            if segue.destination is SecondaryView {
                let vc = segue.destination as? SecondaryView
                vc?.text = "\(mainViewTextLabel!)"
            }
        }
    }
    

    @IBAction func onButtonTap(_ sender: Any) {
        
    }
    
}

这是我的 secondaryView.swift 文件:

import UIKit

class SecondaryView: UIViewController {
    
    var text:String = ""
    
    @IBOutlet weak var secondaryViewLabel: UILabel!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        secondaryViewLabel?.text = text
    }
    
}

当我运行应用程序并在 TextField 中键入任何文本并按按钮转到 SecondaryView VC 时,那里没有文本。

如果有人知道将文本从 View 传递到另一个 View 的另一种方法,或者文本显示的方式,我将不胜感激。

最佳答案

我认为您有几个问题。

首先,您在 viewDidLoad 中调用 prepare(for:...)。这个函数不是你自己调用的。您为其提供一个实现,系统会在转场之前调用它。

第二个是您传递的是对 UITextField 的引用,而不是该文本字段的文本。

也许这样的东西会更好:

class ViewController: UIViewController {
    
    var text: String = ""
    
    @IBOutlet weak var mainViewTextLabel: UITextField!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // Do anything else you need to do when loading
    }

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
            if segue.destination is SecondaryView {
                let vc = segue.destination as? SecondaryView
                vc?.text = mainViewTextLabel.text ?? ""
            }
        }  
}

关于ios - 将文本从 View 中的 TextLabel 传递到另一个 View 中的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68550865/

相关文章:

iphone - 编辑更改在 IOS5 中有效,但在 IOS6 中无效。文本字段 : shouldChangeCharactersInRange:

ios - 为什么当我点击它们时,我的按钮的文本颜色没有改变?

ios - 如何让我的 iOS 应用程序连续循环播放声音列表?

objective-c - 删除发送到 UILabel 的数据

ios - 升级到Xcode 6.3后,新建的iOS app archives无法提交

iOS 应用内购买无效产品 ID iOS 5.1.1

ios - 如何在 swift 2.2 中为 UITextField.textFieldDidChange 添加一个 Action

ios - 如何通过后台下载更新 iOS 应用程序的内容?

ios - 试验 Firebase - 推送通知

xcode - Xamarin.iOS - XCode 5 配置