私はビューコントローラ間でスワイプナビゲーションを処理して実装するクラスのインスタンスを持っています。私は別のビューコントローラへのスワイプナビゲーションをシミュレートできるメソッドをこのクラスに持っています。インスタンスを作成せずに別のクラスのメソッドを呼び出す
完璧なシナリオでは、IBのビューコントローラにボタンを追加し、そのアクションコールでハンドラクラスのメソッドを呼び出して、他のビューコントローラに移動します。
私はインスタンスを再作成しようとしているようですが、明らかに他のインスタンスにあるすべての情報を持っていないため動作しません。
また、ハンドラクラス自体からボタンのサブビューをビューコントローラに追加しようとしましたが、うまくいきましたが、もっときれいな方法があるかどうかを知りたかったのです。
メソッドを呼び出すために、他のView Controllerから既に存在するクラスのインスタンスにアクセスすることはありますか?
私はswipe().navigateToLeftVC()
を試しましたが、インスタンスが再作成されました。
私は、最初のインスタンスがアプリケーションデリゲートで作成され、window.rootviewcontrollerに割り当てられていることに気付きました。これは助けになるだろうか?ありがとうございました – Walking
多分あなたはこのようなインスタンスの値を持つグローバル変数を作成することができます: 'let myInstance = myClass()'そしてあなたの関数を呼び出す必要があるときはいつでもそのインスタンスを参照してください。そのインスタンスはグローバルスコープで定義されているので、どこからでも参照できます。また、グローバル変数の代わりにシングルトンを作成することもできます。 – Harish
また、各ビューコントローラ – Shades