Swift 2 - sharedInstance函数返回nil

时间:2015-11-25 02:04:19

标签: ios swift2 fatal-error

我已将ViewController()设为sharedInstance。当我尝试从另一个视图触发函数时,共享函数返回

  

致命错误:在解包可选值时意外发现nil

我不明白为什么使用sharedInstance给我一个错误,如果我从`ViewController'中调用该函数

它会很好用
class ViewController: UIViewController {

static let sharedInstance = ViewController()

@IBOutlet weak var playBtn: UIButton!

///

///

func audioPlayerIsNotPlaying() {

        print("stop") //runs

        playBtn.selected = false //fatal error: nil
        playBtn.setImage(UIImage(named: "playBtn.png"), forState: UIControlState.Normal ) //fatal error: nil

    }

}

第二视图控制器:

ViewController.sharedInstance.audioPlayerIsNotPlaying()

为什么playBtn按钮对象正在返回nil

2 个答案:

答案 0 :(得分:2)

以编程方式创建的视图不会设置插座。您需要从笔尖或故事板创建实例。

答案 1 :(得分:1)

为了连接视图控制器的出口,您必须通过故事板(或NIB)对其进行实例化。例如,如果您要尝试对视图控制器进行static引用,则可以执行以下操作:

static let sharedInstance = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("identifier")

否则网点将为nil