2015-06-06 38 views
0

所有,代表松动视图控制器对象迅速

我已经设置了一个协议,视图控制器是该协议的代表,就像这样:

import Foundation 

protocol PayButtonProtocol { 
    func enablePayButton() 
    func disablePayButton() 
} 

而视图控制器是委托:

class ViewController: UIViewController, PayButtonProtocol 

协议功能如下:

func enablePayButton() { 
     println("Button enabled") 
     PAYBarButton.enabled = false 
    } 

    func disablePayButton() { 
     PAYBarButton.enabled = false 
    } 

我设置一个类,并指定委托:

class Trigger 
{ 
    var delegate:PayButtonProtocol? 

    func EnablePayButton() 
    { 
     delegate?.enablePayButton() 
    } 
} 

然后我设置触发运行功能:

let localtrigger = Trigger() 
     localtrigger.delegate = ViewController() 
     localtrigger.EnablePayButton() 

这工作和“启用按钮”被显示在控制台中。但酒吧按钮(PAYBarButton)是零,并且它似乎视图控制器已经失去了它的hieracy,因为我无法访问任何视图控制器对象。 View Controller使用界面构建器构建。任何人有任何想法?它是

localtrigger.delegate = ViewController() 

重建viewconotroller并使原始不可访问吗?如果是这样,我该怎么做?

回答

0

,如果你正在创建你的ViewController类中的localTrigger对象,你可以这样做:

let localtrigger = Trigger() 
localtrigger.delegate = self // self is an instance of ViewController 
localtrigger.EnablePayButton()