おはよう、呼び出し外部関数が、値なし
は、私はこのクラスを持っている:
import Cocoa
class PopOverDetails: NSViewController {
var dID = String()
@IBOutlet weak var txtEmail: NSTextField!
public func fillDetails (ID:NSManagedObjectID) {
print("=== fillDetails ===")
print(ID)
dID = "\(ID)"
}
override func viewDidLoad() {
print("=== viewDidLoad ===")
print(dID)
}
}
iは、アルが正常に動作しますが、問題
let Controller = PopOverDetails()
Controller.fillDetails(ID: list[0].objectID)
別のビューコントローラから関数を呼び出します私の関数fillDetailsに があると、私はView Controllerから "送信"するobjectIDの値を取得します。
しかし、viedidloadが空のため、この値では動作しません。 これは私の出力です:
=== fillDetails ===
0x40000b <x-coredata://7E006435-3E05-41F9-A3E4-CB8179A319A9/list/p1>
=== viewDidLoad ===
私の間違いはどこですか?その後、PopOverDetailsで:)
UPDATE
let vcDetails = NSStoryboard(name: "Main", bundle: nil).instantiateController(withIdentifier: "PopoverDetails") as! NSViewController
popover.contentViewController = vcDetails
popover.show(relativeTo: tblView.rect(ofRow: tblView.selectedRow) , of: tblView, preferredEdge: .maxX)
}
にデフォルトの初期化子をその変数を取得することができますPopOverDetails() 'は、ストーリーボード/ xibのインスタンスではない**コントローラの新しいインスタンスを作成します。 'IBOutlet'のセグを使って実際の参照が必要です。 – vadian