2017-07-16 4 views
0

大きなコードを別のファイルに移動しようとしています。私はこれをやったと信じていますが、私は機能を呼び出すのに問題があります。 startScanを除く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 

これは罰金コンパイルは、呼び出されません。

は、私は2つのファイルを持っています。それ以外の場合は解除されます、私はselfrightButtonのターゲットを変更しようとしたが、それは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

ありがとうございました!あなたは1トンを助けた – Will

関連する問題