私はViewControllerA
を実装しました。これはまた、サービスのデリゲート(基本的にはマルチペイパー接続)で実装されています。 私はビューController B
を持っています。そこにはユーザーとのやりとりと「送信」ボタンがあります。 このボタンの動作では、サービスAデリゲートのメソッドであるViewController Aからしか実行できないメソッドが呼び出されることを願っています。 これを達成する良い方法があるかどうか分かりますか?私はSwiftには新しいです。それを設計するより良い方法があれば、私も知りたいです。ありがとうございました。サービスから取得したメソッドを呼び出す方法ViewController ViewController Bのボタンで委譲された?
0
A
答えて
0
Delegate
からViewControllerA
からViewControllerB
への最善の方法。 ViewControllerBは、プロトコルとデリゲートプロパティを作成します。 ViewControllerAはプロトコルメソッドに準拠し、必須でオプションの(できること)メソッドを実装します。 ViewControllerBのアクションでは、実際にdelegateプロパティを使用してプロトコルメソッドを呼び出します。任意のメソッドを呼び出すことができるViewControllerA実装のメソッドを呼び出します。
プロトコル:
protocol ViewControllerBDelegate: class {
func didSendClicked(sender: UIbutton)
}
委任プロパティ:ViewControllerAによって
@property (weak) id<ViewControllerBDelegate> delegate;
準拠プロトコル:
@interface ViewControllerA() <ViewControllerBDelegate>
@end
はviewControllerA方法を実装:
- (void)didSendClicked:(UIButton *)sender {
// do stuff
}
設定
delegate?.didSendClicked(self)
viewControllerBからデリゲートメソッドを呼び出すviewControllerA
viewControllerB.delegate = viewControllerA(ref)
ためdelegtaeソリューション:2 同じコールバックにはNSNotificationCenter
を使用できます。
関連する問題
- 1. xib viewcontrollerをstoryboard viewcontrollerから呼び出す方法
- 2. オーバーライド内からクラス委譲を使用するときに委譲された関数を呼び出す
- 3. IOS 5 - 別のViewControllerからViewControllerを呼び出す
- 4. ViewControllerのUIViewメソッドを呼び出す
- 5. ViewControllerからUICollectionviewcellクラスの関数を呼び出す方法
- 6. appdelegateでviewcontrollerから関数を呼び出す方法は? (Swift)
- 7. Swift:別のViewControllerからViewController funcを呼び出してください。
- 8. UIImagePickerControllerが委譲したときdidFinishPickingMediaWithInfoが呼び出されますか?
- 9. 他のViewControllerから関数を呼び出す方法
- 10. NSObjectクラスからViewControllerメソッドを呼び出す
- 11. segueで呼び出されたのと同じViewController
- 12. ViewControllerデリゲートが呼び出されない
- 13. Swift2:ViewControllerが何回呼び出されたか
- 14. スクロールアクションを使用して、child viewcontrollerからparent viewcontrollerを取得する方法は?
- 15. dismissViewControllerAnimatedが呼び出されましたが、ViewControllerが閉じられません。
- 16. swift:ゲームシーンでViewControllerで作成した広告を呼び出す方法
- 17. プログラムで使用されたviewControllerからViewControllerをルートにポップアップ
- 18. 非自己委譲が呼び出されていない
- 19. swiftでViewControllerクラスメソッドを呼び出す
- 20. ViewController deinitメソッドを呼び出さないswift 4
- 21. ActiveRecord AssociationCollectionオブジェクトで委譲されるメソッド呼び出しの下の原則は何ですか?
- 22. C++がC#関数を呼び出すときに、C#から委譲されたC++関数を呼び出す方法は?
- 23. 使用方法androidのWebサービスを呼び出すための取得メソッド
- 24. 他のViewControllerのメソッドを呼び出す| Swift
- 25. 子ViewControllerは、親クラスで宣言されたデリゲートメソッドを呼び出さない
- 26. MyAppDelegate.mのViewControllerへの呼び出し方法
- 27. ASP.NETでビルドされたWebサービスでメソッド呼び出しをスケジュールする方法
- 28. ViewController内のビューを呼び出す方法は?
- 29. C#でSOAPサービスを呼び出すときに、サービスマネージャクラスの委譲クラスを追加する方法は?
- 30. 渡されたパラメータに応じて、別のViewControllerの関数を呼び出す
ありがとうございました。私はそれを試してみる。 someServiceのデリゲートとしてAを、AのデリゲートとしてBを持つことは大丈夫でしょうか? – celluryz
それは状況に応じて時々委任し、時にはポストノーティフィケーションが動作することに依存します。 – Sandy