iOS 7 实现视图控制器间的数据传递示例

在iOS开发中,视图控制器之间的数据传递是构建应用程序交互的重要操作。主要展示如何在两个视图控制器间传递字符串数据的方法,适用于iOS 7及更高版本。我们将使用以下四种方式完成数据传递:

1. 代理协议(Delegate Protocol)

通过定义代理协议,接收数据的视图控制器(ViewControllerB)成为发送数据的视图控制器(ViewControllerA)的代理。在ViewControllerA中调用代理方法来将数据传递给ViewControllerB。

2. Notification Center

使用NSNotificationCenter发送和接收数据。ViewControllerA发布通知,ViewControllerB在初始化时订阅该通知。这样,数据可通过通知方式传递。

3. Block

在ViewControllerA中定义一个Block属性,在实例化ViewControllerB时设置该Block。需要传递数据时,直接执行Block,将数据传递。

4. UIStoryboardSegue

若使用Storyboard并通过segue连接视图控制器,可在prepare(for:sender:)方法中传递数据。代码如下:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "ToViewControllerB" {
        let destinationViewController = segue.destination as! ViewControllerB
        destinationViewController.receivedString = textField.text ?? ""
    }
}

在ViewControllerB中创建receivedString属性存储接收到的数据,并在视图加载时显示。

提供了一个简明的“视图控制器数据传递Demo1”示例,帮助开发者掌握视图控制器间的数据传递方法,适合构建交互复杂的iOS应用。

zip 文件大小:48.44KB