解决方案 »

  1.   

    把前面那个帖子结了吧~
    你还没弄清楚!的作用。。 看一下这个:
    http://blog.csdn.net/zhangao0086/article/details/38640209
      

  2.   

    你这里面有好几个问题,首先是alloc的问题,alloc只是分配一块内存,你还需要去初始化它,一般在alloc之后要init,swift里面直接:SECViewController()就行了。你说报错,也不说报什么错。。怎么给你看?是类型不匹配还是什么?
      

  3.   

    这个是我的版本问题,我下的xcode6 1.0测试版的,不加alloc()报错~
      

  4.   

    首先用法不对。如果从前向后传值,不是代理该干的事。如你上面的代码,在当前控制器中向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)总结: 你的第二段代码才是代理该干的事,是由后向前传值的节奏。好好理解一下代理的概念及使用场景
      

  5.   

    其实我就想知道,下面的例子换做swift怎么编写~
      

  6.   


    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
        }
    }
      

  7.   

    3Q啦,我发现我的xcode6是6.0的,刚刚测试一下,连代理反向传值都有问题~,版本太老啦