swift代理正向传值delegate总是出错! swift 代理 正向传值 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把前面那个帖子结了吧~你还没弄清楚!的作用。。 看一下这个:http://blog.csdn.net/zhangao0086/article/details/38640209 你这里面有好几个问题,首先是alloc的问题,alloc只是分配一块内存,你还需要去初始化它,一般在alloc之后要init,swift里面直接:SECViewController()就行了。你说报错,也不说报什么错。。怎么给你看?是类型不匹配还是什么? 这个是我的版本问题,我下的xcode6 1.0测试版的,不加alloc()报错~ 首先用法不对。如果从前向后传值,不是代理该干的事。如你上面的代码,在当前控制器中向SECViewController传值,你可以简单在SECViewController中公开一个可读写的属性或一个方法就可以完成数据的传递。var sec=SECViewController();sec.chuangzhi(text1.text); /////// or sec.preText=text1.text再一个你写的第二段代码不报错的原因var sec=SECViewController() /////// 注意SECViewController().alloc() 没有这样的写法sec.delegate=self要保证当前控制器(self) 实现了 SECViewController的代理方法。以便在SECViewController中可以将值回传给当前控制器(self)总结: 你的第二段代码才是代理该干的事,是由后向前传值的节奏。好好理解一下代理的概念及使用场景 其实我就想知道,下面的例子换做swift怎么编写~ protocol PassValueDelegate { func setValue(value: NSString)}class A: UITableViewController { var passDelegate: PassValueDelegate? func buttonClicked(sender: AnyObject!) { var b = B() self.passDelegate = b self.passDelegate?.setValue("value") }}class B: NSObject, PassValueDelegate { var value: NSString? func setValue(value: NSString) { self.value = value }} 3Q啦,我发现我的xcode6是6.0的,刚刚测试一下,连代理反向传值都有问题~,版本太老啦 怎么为UIButton添加背景图片? 如何在才能在后台applicationDidEnterBackground长久运行 关于iphone切换主题 求助:虚拟机装mac错误 小虾米跪求:CDMA版iphone4在中国能自己写号吗? 关于NSString 截取问题 嵌套的页面,如何才能够push过另一个页面去? NSURLConnection 请求服务器问题 请教:UITabBarController中UITabBarItem设置图标,原始图片没有背景,但是运行模拟器后图标有灰色背景,如何解决 消息发送语句? 急急急!!! CABasicAnimation动画结束后的问题
你还没弄清楚!的作用。。 看一下这个:
http://blog.csdn.net/zhangao0086/article/details/38640209
sec.chuangzhi(text1.text); /////// or sec.preText=text1.text再一个你写的第二段代码不报错的原因
var sec=SECViewController() /////// 注意SECViewController().alloc() 没有这样的写法
sec.delegate=self要保证当前控制器(self) 实现了 SECViewController的代理方法。以便在SECViewController中可以将值回传给当前控制器(self)总结: 你的第二段代码才是代理该干的事,是由后向前传值的节奏。好好理解一下代理的概念及使用场景
protocol PassValueDelegate {
func setValue(value: NSString)
}class A: UITableViewController {
var passDelegate: PassValueDelegate?
func buttonClicked(sender: AnyObject!) {
var b = B()
self.passDelegate = b
self.passDelegate?.setValue("value")
}
}class B: NSObject, PassValueDelegate {
var value: NSString?
func setValue(value: NSString) {
self.value = value
}
}