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应用。
48.44KB
文件大小:
评论区