Vic*_*tro 1 textfield viewcontroller ios swift
我尝试profileView从第一个视图访问视图中的文本字段内容,viewController但是它不起作用。我读到我必须使用,override func prepare(for segue: UIStoryboardSegue, sender: Any?) {}所以我使用了它,但是它仍然无法正常工作,我也不知道为什么。
这是我的viewController代码:
// This code is the code generated by xCode, only the loginField was added.
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var loginField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的profileController准备功能:
var login: String!
@IBOutlet weak var myLabel: UILabel!
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
print("prepare")
if (segue.identifier == "mainMenu")
{
let svc = segue.source as! ViewController
login = svc.loginField.text
self.myLabel.text = login
print(login)
}
}
Run Code Online (Sandbox Code Playgroud)
实际上,我真正读到的东西是“ prepareForSegue”函子,但是当我尝试覆盖它时,xCode不会编译代码...
谢谢你的帮助。
在您的viewController中编写您的prepareforSegue方法
为什么?
因为您想将ViewController文本字段数据发送到profileViewController。那就是在Source中编写prepareForSegue 。这里,
Source = ViewController
Destination = ProfileView
Run Code Online (Sandbox Code Playgroud)
注意:
在prepareForSegue中是这样的。
destinationVC.someVariable = self.SourceViewLabel.text // your sourceViewController
Run Code Online (Sandbox Code Playgroud)
并在destinationViewController(ProfileView)的viewDidLoad中编写此代码。
self.profileLabel.text = somVariable
Run Code Online (Sandbox Code Playgroud)
在我的第一观点中,我写了这个。
@IBAction func nexVCAction(_ sender: Any) {
self.performSegue(withIdentifier: "secondvc", sender: self)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "secondvc" {
let vc = segue.destination as! secondVC
vc.stringHolder = textField.text!
}
}
Run Code Online (Sandbox Code Playgroud)
这是第二个视图代码。
import UIKit
class secondVC: UIViewController {
@IBOutlet weak var textlabel: UILabel!
var stringHolder:String = ""
override func viewDidLoad() {
super.viewDidLoad()
textlabel.text = stringHolder
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Run Code Online (Sandbox Code Playgroud)
我为此做了git项目。
仅检查FirstVC.swift和secondVC.swift
这就是输出。
| 归档时间: |
|
| 查看次数: |
3048 次 |
| 最近记录: |