ios 8 und Swift: Aufruf einer Funktion in einer anderen Klasse, die von view-controller

Ich möchten berühren Sie eine Taste im ViewController, und führen Sie eine einfache Funktion in einer benutzerdefinierten Klasse. Werden keine Parameter benötigt. Code ist im Grunde:

class MyClass: UIView {
   //init function is here
   //other setup stuff
   ...

func SetFocus() {
//I want to set the camera focus to infinity.
    var error: NSErrorPointer = nil
    var pos: CFloat = 1.0
    captureDevice!.lockForConfiguration(error)
    captureDevice!.setFocusModeLockedWithLensPosition(pos, completionHandler: nil)
    captureDevice!.unlockForConfiguration()
}

}

and in ViewController

import UIKit

class ViewController: UIViewController {

    @IBOutlet var myClass: MyClass!

    override func viewDidLoad() {
        super.viewDidLoad()
        //Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        //Dispose of any resources that can be recreated.
    }


    @IBAction func myButton(sender: UIButton) {

         myClass.SetFocus()

    }
}

Ich habe versucht, alles, was ich denken kann (neu in Swift) und die app stürzt ab, oder die Funktion rufe ich nicht laufen. Alles andere in MyClass funktioniert OK.

  • Und wo ist festgelegt myClass? Tut es vorhanden ist, wenn Sie anrufen MyFunction?
  • Wenn es ein IBOutlet haben Sie hakte es bis in Storyboard?
  • Können wir finden Sie in den entsprechenden code in myFunction()
  • Sie können auch NSNotificationCenter für dieses Problem
InformationsquelleAutor Nordic_1 | 2015-07-29
Schreibe einen Kommentar