035_swift_故事板的消息传递

创建空白工程项目

对Main.storyboard 进行操作 选择main找到button

拖动到面板上面

创建新的页面

也可以点右上方➕通过View Controller 拖动到空白区域创建

创建后你会发现他们两个是没有连线的。

也就是没有关联的

双击这个地方的小点点

拖动我们新建的ViewController中的页面中

 

然后选中show

就会发现这两个页面 中间有一条连线把他们链接起来了

选中这条链接线 给他命名一个id

下面我们来给按钮进行一些修改

 对按钮修改背景颜色

当然 还可以修改其他的属性。此处就不多做处理了

修改好后选中按钮。command control options Enter同时按住这四个按键 

召唤代码区域

双击按钮处 并拖动到代码区域

按钮绑定showDetail方法

点击Connect后

会添加相关方法

再次command control options Enter同时按住这四个按键 

就会切换到刚才的视图模式

再在新的页面上添加Label

并修改相关属性

之后如下

接下来 新建一个控制器

next 

next

然后我们使用。刚才创建Label的页面和这个类进行绑定

先选中ViewController 然后把刚才创建的类名写到上面的输入框并按下回车键。

之后还是

再次command control options Enter同时按住这四个按键 

切换到代码编辑模式

将Lable 的时间双击拖动到代码区域进行事件的绑定

 

打开ViewController.swift 修改代码

//
//  ViewController.swift
//  swift_storyboard
//
//  Created by liuan on 2020/5/5.
//  Copyright © 2020 anguo.com. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }

    @IBAction func showDetail(_ sender: Any) {
        self.performSegue(withIdentifier: "showDetail", sender: nil)
    }
    
}

监听跳转并设置文本

//
//  ViewController.swift
//  swift_storyboard
//
//  Created by liuan on 2020/5/5.
//  Copyright © 2020 anguo.com. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }

    @IBAction func showDetail(_ sender: Any) {
        self.performSegue(withIdentifier: "showDetail", sender: nil)
    }
    //监听故事板的连接线跳转的动作
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        //获得连接线的目标视图控制器
        let vc = segue.destination as! DetailViewController
        vc.params="Hello Anguo"
    }
}

DetailViewController显然还没有params参数。我们去创建他

//
//  DetailViewController.swift
//  swift_storyboard
//
//  Created by liuan on 2020/5/5.
//  Copyright © 2020 anguo.com. All rights reserved.
//

import UIKit

class DetailViewController: UIViewController {
    var params="???"
    @IBOutlet weak var detailLable: UILabel!
    override func viewDidLoad() {
        super.viewDidLoad()
        self.detailLable.text = self .params
        // Do any additional setup after loading the view.
    }
    

    /*
    // MARK: - Navigation

    // In a storyboard-based application, you will often want to do a little preparation before navigation
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        // Get the new view controller using segue.destination.
        // Pass the selected object to the new view controller.
    }
    */

}

编译运行。

点击按钮后

猜你喜欢

转载自blog.csdn.net/mp624183768/article/details/105941012