ios - swift通过属性传值,返回为空,怎么解决?

 双子汐晨_312 发布于 2022-10-26 22:07

新手敲代码,想从一个页面通过点击按钮往另外一个页面传值,通过属性传值的方式传递两个string,但是在第二个页面获取传到的值得时候,发现是空的,怎么解决?求教各位.

第一个页面:

func pushView(){

    
    let secondVC = secondViewController()
    
    secondVC.titleGo = "百度一下"

    secondVC.address = "https://www.baidu.com"
    
    
    self.performSegue(withIdentifier: "secondViewController", sender: self)
    
    print("======")
    
}

第二个页面:

class secondViewController: UIViewController {

@IBOutlet weak var itemBar: UINavigationItem!

var netAddress = String()

var address = String()

var titleGo = String()

var webView = WKWebView()

override func viewDidLoad() {
    
    
    itemBar.title = titleGo
    
    print("======+\(titleGo)")
    
    netAddress = address
    
    print("++++++=\(address)")
}
1 个回答
  • 你 secondVC 就是一局部变量……

    performSegue 后,会有 prepare(for segue: UIStoryboardSegue, sender: Any?) 这个步骤。在这里,可以获取到 segue 的 identifier, destination。

    拿到 destination 后,修改 destination 内的属性即可。

    简单的例子:

        @IBAction func btn1Pressed(_ sender: Any) {
    
            performSegue(withIdentifier: "segue1", sender: self)
        }
    
        @IBAction func btn2Pressed(_ sender: Any) {
            performSegue(withIdentifier: "segue2", sender: self)
        }
    
        override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
            if segue.identifier == "segue1" {
                if let target = segue.destination as? ViewController1 {
                    target.text = "segue1"
                    target.num = 1
                }
            } else if segue.identifier == "segue2" {
                if let target = segue.destination as? ViewController2 {
                    target.text = "segue2"
                    target.num = 2
                }
            }
        }

    如果你想自己创建 ViewController 并 push ,可以用 navigationController 的 push 或者用 viewController 的 present

        func test() {
            let vc = ViewController1()
            vc.text = "111"
            vc.num = 3
    
            // 这样显示 
            // in navigation controller
            self.navigationController?.pushViewController(vc, animated: true)
            
            // 或者这样
            // present modal viewController
            //self.present(vc, animated: true, completion: nil)
        }
    2022-10-27 01:22 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有