質問

私は科学的な計算機アプリケーションを作成しています。すべてのボタンの動作と数学を持っています。私がやろうとしているのは、計算機が実行したすべてのアクションを示す2番目のビューを追加することです。最良の方法(私が考えることができる)は、すべてのボタンを押してこの二次ビューに表示することでした。しかし、ビュー間でボタンを押す方法がわかりません。

データフィールドからラベルにデータを渡すことに関するチュートリアルを作成しましたが、それはそれがどのように機能するかに似たものですが、データフィールドからNSStringメソッドと同様に、より多くのボタンを押すと、結果を交換する必要はありません。

どんな助けも大歓迎です。何かが不明な場合は、私に知らせてください。

役に立ちましたか?

解決

必ずしも2つのビューコントローラーが必要ではありません。メインビューをコンテナとして使用できます(コンテナサービスと呼びます)。それぞれがビュー全体を取り上げて、他の2つのuiviewをその中に置きます。一方がもう一方の内側にないことを確認してください。それらは、コンテンビュー内のピアレベルにある必要があります。 1つはあなたの現在のビューです(calculatureviewと呼んでください)。もう1つは、アクションのビューです(ActionsViewと呼びます)。関連するIBACTIONを使用して、2つのビューのそれぞれにボタンを追加して、ビュー間を移行します。プログラムは常に同じビューコントローラーに残ります。必要に応じてコントローラー間を通過することはありません。あなたはこのように移行します:

[UIView animateWithDuration:1.0 delay:nil options:UIViewAnimationOptionTransitionFlipFromRight animations:^{
    [calculatorView setHidden:YES];
    [actionsView setHidden:NO];
} completion:nil];

[UIView animateWithDuration:1.0 delay:nil options:UIViewAnimationOptionTransitionFlipFromRight animations:^{
    [calculatorView setHidden:NO];
    [actionsView setHidden:YES];
} completion:nil];

2つのビューコントローラーを使用でき、学習するのに適した設計パターンですが、これは電卓アプリのその複雑さを回避する簡単なソリューションです。

他のヒント

historyArrayと呼ばれる配列を使用すると、ボタンが押されているときに数値値を保存したり、オペレーターを保存したりできます。これがアプリケーションの重要な機能になる場合は、ボタンプレスに対応して値を渡し、必要な履歴の量に応じてクエリを可能にするOperationHistoryのような名前のモデルクラスを作成します。クエリの例は、-allhistoryおよび-historysincelastclearです。

例:

@interface OperationHistory : NSObject
{
    @private:
    NSMutableArray *history;
}
- (void)addNumberToHistory:(NSNumber *)number;
- (void)addOperatorToHistory:(NSString *)operator;
- (void)addClearCommandToHistory; // serves as a marker only; doesn't clear history

- (NSArray *)allHistory;
- (NSArray *)historySinceLastClear;

- (void)clearHistory;

また、元のタイトルに関しては、XIBファイルがデータストレージに関心を持ってはならない(そして決して関心がない)はずです。 XIBファイルは、あなたの場合、データモデルのビューを提供する必要があるインターフェイスです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top