1

ボタンが 1 つ-(IBAction)mode;あり、デジタル時計のモードのようにモードを切り替えるために、押すたびにラベル テキストを変更したいと考えています。次に、これらのモードを if-then ステートメントで使用して、さまざまな計算を行いたいと思います。

if-then ステートメントについては、次のように言えます。

ラベル = x の場合、ラベル = y の場合

しかし、押すたびに同じラベルのテキストを変更するボタンを作成するにはどうすればよいでしょうか? どんな助けでも大歓迎です。

4

1 に答える 1

1

次に、これらのモードを if-then ステートメントで使用して、さまざまな計算を行いたいと思います。

確かにそうすることができますが、この方法には行かないことを強くお勧めします: 計算でラベルのコンテンツを使用することは、モデル ビュー コントローラー パターンの粒度に反します。ラベルのコンテンツは視覚的表現の一部であり、計算は一部であるためです。論理モデルの。

これは単なる理論上の問題ではありません。ラベル コンテンツを使用すると、ローカリゼーションが妨げられ、プロジェクトの将来のメンテナンスが妨げられます。

MVS の方法で探しているものを実現する方法は次のとおりです。

  • ボタンで切り替え可能な現在のモードを格納するモデル クラスを定義します。
  • 現在のモードに基づいて計算を実行するモデルまたはコントローラーでメソッドを定義する
  • 現在のモードを取得し、必要に応じてモードを切り替えるメソッドを定義する
  • モデル オブジェクトがプロジェクト内のシングルトンであることを確認してください
  • 「view will appear」メソッドのビューで、モデルからモードを読み取り、それに応じてラベルを設定します
  • ボタン ハンドラーのコードで、現在のモードを読み取り、必要に応じて変更し、新しい値を保存して、それに応じてラベルを更新します。

これは大変な作業のように思えますが、このアプローチの Objective C コードは、ラベルから直接読み取るアプローチよりもそれほど長くはありません。

Objective C でモデルをシングルトンとして設定する簡単な例を次に示します。

于 2013-07-14T17:40:16.217 に答える