我正在尝试通过segue将字符串从视图控制器传递到另一个视图控制器,但是它不起作用。
Xcode 10,Swift 4,iOS 10。
viewcontroller.swift代码:
import UIKit
class ViewController: UIViewController {
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "segue_vc_to_myvc" {
let vc = segue.destination as! MyViewController
vc.str = "hello"
}
}
}
Myviewcontroller.swift:
import UIKit
class MyViewController: UIViewController {
@IBOutlet weak var label:UILabel!
var str: String? = nil
override func viewDidLoad() {
super.viewDidLoad()
//label.text = str
if let str = str {
print(str)
}
}
我想在屏幕上显示字符串,但是没什么。我尝试使用标签,但标签仍然一无所有。
如果我使用label.text = str
,则错误消息为:
self _0190603.MyViewController 0x000000010130a490 UIKit.UIViewController UIViewController label UILabel? nil none str String? nil none
答案 0 :(得分:0)
然后确保您触发正确的方法来执行segue。
类似的东西
@IBAction func NextPageAction(_ sender: Any) {
performSegue(withIdentifier: "second_page", sender: nil)
}
在'if segue.identifier == blablabla'处添加一个断点,看看这里发生了什么
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "second_page" {
let page = segue.destination as! SecondeViewController
page.txt = "hello world"
}
}
答案 1 :(得分:0)
检查是否正确设置了标识符。它应该可以正常工作!