0

SecondViewController から FirstViewController クラス内にある変数にアクセスしようとしています。secondviewcontroller から firstviewcontroller をインスタンス化しようとしましたが、この NSCoder 取引で極端な問題が発生し、以前の投稿が機能していないようです...おそらく、Swift が「更新」され続けて古いコードが壊れているため、または私がそれを正しく呼ぶことはできません...

FirstViewController の私の初期化コードは次のとおりです。

必要な init(コーダー aDecoder: NSCoder) {

    super.init(coder: aDecoder)
    fatalError("init(coder:) has not been implemented")
}

今すぐどんな助けでも素晴らしいでしょう。ありがとう

4

1 に答える 1

0

Swift と Objective C では、あるクラスから別のクラスにオブジェクトの値を渡す/設定することに違いはありません。一般に、最近の Swift プロジェクトでは、ストーリーボードを使用します。しかし、考え方は同じです。2 番目の viewController をインスタンス化するときに、その時点でその viewController のプロパティに直接アクセスします。通常、最初のviewControllerに通信するときは、プロトコル/デリゲートのシナリオを利用します(これらを調査してください)。以下は、prepareForSegue 関数 (ストーリーボードのデフォルト) を使用してセカンダリ viewController のプロパティにアクセスする非常に簡単な例です。

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
    if segue.identifier == "someidentifier" {
        let vc = segue.destinationViewController as MySecondViewController
        // vc.someProperty = someValue
    }
}

編集: このチュートリアルと同様のものをチェックしてください。重要な原則は segue.detinationViewController です

http://makeapppie.com/2014/07/01/swift-swift-using-segues-and-delegates-in-navigation-controllers-part-1-the-template/

于 2014-11-10T17:27:57.320 に答える