我正在創建一個科學計算器應用程序,我已經得到了所有按鈕的工作和數學。 我想要做的是添加第二個視圖,該視圖將顯示計算器執行的所有操作。最好的方法(我能想到的)是存儲所有的按鈕並將它們顯示在這個輔助視圖中。但我不知道如何在視圖之間傳遞按鈕。如何將按鈕存儲到不同的.xib中並查看它們?
我已經完成了關於從數據字段向標籤傳遞數據的教程,這與應該如何工作類似,但是當按下更多按鈕時,不需要將結果替換爲NSString方法的數據字段。
任何幫助,非常感謝。如果有什麼不清楚的,請告訴我。
我正在創建一個科學計算器應用程序,我已經得到了所有按鈕的工作和數學。 我想要做的是添加第二個視圖,該視圖將顯示計算器執行的所有操作。最好的方法(我能想到的)是存儲所有的按鈕並將它們顯示在這個輔助視圖中。但我不知道如何在視圖之間傳遞按鈕。如何將按鈕存儲到不同的.xib中並查看它們?
我已經完成了關於從數據字段向標籤傳遞數據的教程,這與應該如何工作類似,但是當按下更多按鈕時,不需要將結果替換爲NSString方法的數據字段。
任何幫助,非常感謝。如果有什麼不清楚的,請告訴我。
您不一定需要兩個視圖控制器。你可以使用你的主視圖作爲容器(稱之爲containerView)。在其中放置另外兩個UIViews,每個都佔據整個視圖。確保一個不在另一個裏面。它們應該位於containerView內部的同級別。一個是你當前的視圖(稱之爲calculatorView)。另一個是這個動作的視圖(稱之爲actionView)。使用關聯的IBAction在兩個視圖中的每個視圖上添加一個按鈕以在視圖之間轉換。您的程序將始終保持在同一個視圖控制器中;必要時不在控制器之間傳遞。您過渡是這樣的:
[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];
雖然你可以使用兩個視圖控制器,它是一個很好的設計模式去學習,這是一個簡單的解決方案,避免了在你的計算器應用程序的複雜性。
您可以將一個名爲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文件是接口,在你的情況下,它應該爲你的數據模型提供視圖。
可能會帶着一個小對象,它有一個或兩個數組來存儲您的信息,也許可以將它實現爲單例,然後像使用其他對象一樣使用它 – 2012-02-16 13:42:00
您需要設置一個委託協議。在這裏看到我的答案:[兩個視圖控制器之間的數據傳輸] [1]。 [1]:http://stackoverflow.com/questions/8740205/data-transfer-between-two-view-controller/8744043#8744043 – 2012-02-17 03:57:49