2016-12-02 4 views
1

サーバコールで配列を取得してテーブルビューに表示するアプリケーションを開発しています。 アプリケーションにはナビゲーションコントローラー内に2つのビューコントローラー(VC1とVC2と呼ぶ)があり、VC1はVC2にセグメントします。 VC1はユーザーから入力を取得し、shouldPerformSegueWithIdentifierで入力を検証します。 有効な場合、prepareForSegue内で、VC1はサーバーから配列を取得してテーブルビューに表示するdestinationVCを使用してVC2メソッドを呼び出します。prepareForSegueが呼び出された後にセグを止める方法はありますか

私は、返された配列が空であり、空のテーブルを表示するという問題に直面しています。

空のテーブルが表示されないようにすることができますか、VC1のshouldPerformSegueWithIdentifierの中でサーバーを呼び出して、セグを完全に停止する必要がありますか?私は混乱しているのは、配列がVC2のモデルであるため、VC1のサーバー呼び出しを開始してVC2モデルの一部であるデータを取得するのが奇妙に思われるからです。 prepareForSegueが呼び出された後にsegueを停止する方法はありますか?

答えて

1

UIKitは、prepareForSegue:sender:を呼び出す前にデリゲートメソッドshouldPerformSegueWithIdentifier:sender:を呼び出します。配列が空の場合、このメソッドからNOを返します。

+0

ありがとう@ScottAhten、あなたの答えです。しかし、私の質問は、(repharsing)です:shouldPerformSegueWithIdentifierからのfalseを返す:送信者:私はVC1でサーバーコールを開始し、VC2に属するデータを設定する必要があります。私はMVCパターンに違反していませんか? – Azul

+0

VC1は、提示するデータがあるかどうかを知る必要があります。同じ時刻に実際のデータを取得すると、必要なネットワークコールの数が減ります。モデルはVC1によって取り出され、表示のためにVC2に渡されます。だから、私は「いいえ」と言います。これはMVCの違反ではありません。 –

+0

ありがとう@ScottAthen。それはそれを行う最も合理的な方法と思われる。 – Azul

関連する問題