storyboard view之间传值swift
来源:互联网 发布:finale2016打谱软件 编辑:程序博客网 时间:2024/06/05 05:42
关于view之间传值,大概可以采用segue,notification和delegate这三种方法,其中segue只能单向的从view传值到detailView,关于segue和notification的方法,大家可以参考这篇blog点击打开链接。这里简单谈一下delegate的方法。
delegate委托顾名思义就是一个viewcontrollerA委托另外一个viewcontrollerB执行某个方法。假设我们的界面是这样:
A界面跳转到B界面,B界面有值要传递给A界面。那么我们需要A实现某个协议,主要协议定义的方法,然后B调用这个方法,在参数中将值传递给A。
所以这里我们有A中定义一个协议。
protocol ncDelegate { func nchange (n: NSInteger);}然后在A中实现协议中定义的方法。
func nchange(n: NSInteger) { println("nchange") }在B中我们需要调用这个方法于是我们要先有一个该协议的声明变量。
var delegate:ncDelegate!然后我们直接可以调用delegate的方法传值(_data)即可。
delegate.nchange(_data)但是这里我们虽然声明了一个ncDelegate类型的变量delegate,但是我们不知道B中delegate委托的是谁,虽然A实现了ncDelegate协议,但可能还有其它类也实现了,所以
我们需要指明B的委托对象。这时我们遇到一个问题:
如果在A中指定B.delegate = A那么我们需要获得B的实例,如果在B中指定B.delegate = A我们需要获得A的实例,但是我们不能简单的new一个实例,因为我们采用的是storyboard
绑定的方式,如果new一个新的,将不会是我们storyboard的中绑定的那个,所以我们必须在A的prepareforsegue中声明委托对象,这里借助segue可以知道storyboard中的实例:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { var dest: SecondViewController = segue.destinationViewController as SecondViewController dest.delegate = self }
这样就解决了这个问题。如果是A向B传值可以直接借助这个prepareforsegue的方法。
0 0
- storyboard view之间传值swift
- storyboard之间的传值
- iOS Storyboard 中多个view 之间传送数据
- Swift使用Main.storyboard的segue值来回传数据
- StoryBoard中使用Segue实现ViewController之间传值
- IOS View之间传值
- swift -Storyboard- 自适应布局
- swift+storyboard+UIImageview入门
- Swift 扩展 Storyboard 属性
- 用Swift完成不同View Controller之间的切换
- iOS项目开发实战(Swift)—View之间传递数据
- 用Swift完成不同View Controller之间的切换
- iOS项目开发实战(Swift)—View之间传递数据
- iOS开发:StoryBoard 使用Block在两个界面之间传值
- IOS开发中storyboard如何实现界面之间的传值
- storyboard与storyboard之间的跳转
- swift 代码加载xib storyboard
- Swift storyBoard 判断 segue 目标
- 如何设计屏幕底部菜单
- iOS协议
- 你当真(是时候抛弃Eclipse转向IntelliJ了)
- netperf 网络性能测量
- ADB端口被占用
- storyboard view之间传值swift
- Android:新浪微博拉起客户端分享——完美实现同时分享图片和文字(Intent.ACTION_SEND)
- utl_file包的使用
- 51单片机之大杂烩
- XCode 快捷键
- Eclipse中注释复用
- 在Java应用中使用BeanShell(2.0b41)的简单示例
- 关于block的实现和注意
- android enter 隐藏输入法