2017-07-16 46 views
0

我试图将大部分代码移动到另一个文件;我相信我已经做到了,但是,我在调用函数时遇到了问题。UIBarButtonItem在调用时未在另一个类中调用函数

我有两个文件:

scannerBrain.swift

var parentView = UIViewController() 

func startScan(){ 
//The code I want to execute is here 
} 

scannerViewController.swift

let scanner = scannerBrain() 
scanner.parentView = self 
let rightButton = UIBarButtonItem(barButtonSystemItem: .add, target: scanner, action: #selector(scanner.startScan)) 
navigationItem.rightBarButtonItem = rightButton 

编译没有问题,除了startScan不会被调用。我试图改变rightButton的目标self,但造成的unrecognised selector sent to instance

崩溃感谢所有帮助

回答

1

scanner应该是一流水平的财产,否则将被释放。像这样的东西。

class TestViewController: UIViewController { 

    let scanner = scannerBrain() 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     scanner.parentView = self 
     let rightButton = UIBarButtonItem(barButtonSystemItem: .add, target: scanner, action: #selector(scanner.startScan)) 
     navigationItem.rightBarButtonItem = rightButton 
    } 
} 
+0

谢谢了!你帮了很多忙 – Will