iOS 開発でのビュー コントローラー間でのデータの受け渡しは、非常に複雑に思えます。私が気付いたことは次のとおりです。データを前方に渡す (ビューをプッシュする) か、ビューに直接セグエすることは、-(void)prepareForSegue メソッドを使用して簡単に行うことができます。presentingViewCotnroller プロパティと presendedViewController プロパティを使用して、ビュー コントローラ間でデータを簡単にやり取りできます。これは、2 番目のビュー コントローラーから最初のビュー コントローラーに戻るデータの例です。これが私が話していることのコード例です:
((FirstViewController *)self.presentingViewController).firstViewControllerProperty = self.secondViewControllerProperty;
ただし、複数のView Controllerを介してデータを渡そうとすると行き詰まります。誰もが委任を使用し、MVC の観点から考えていると言っているようです。これをやろうとすると、行き詰まります。理由は次のとおりです。viewControllerA がモデルにデータを保持するように指示し、viewControllerD がデータを必要とする場合、viewControllerD がモデルのインスタンスを参照することになります。(ビューコントローラーからモデルにアクセスする方法は他にありません) モデルのインスタンスを作成するとき、つまり、アクセスしようとしていたデータのない新しいモデルがあると仮定しています.
次に、モデルをシングルトンとしてセットアップする必要があることに気付きました。シングルトンは、モデル クラスのインスタンスを作成することなく、他のすべてのビュー コントローラーによって参照される 1 つのクラスをセットアップするときに発生すると想定しています。シングルトンについて読めば読むほど、軌道から外れているように感じます。これらすべてをまとめようとすると、非常に複雑になります。
ここで何か不足していますか?モデルの新しいインスタンスを作成せずに、さまざまなビュー コントローラーからモデルを参照できるようにする必要がありますか? 私は iOS プログラミングに比較的慣れていないので、正しい方向に向けてくれる人を探しています。委任について学ぶことに力を注ぐべきですか? またはシングルトンについて学びますか?またはターゲットアクションについて学習しますか?ビューコントローラー間のデータ転送について学ぶための簡単なチュートリアル/本の推奨事項はありますか?