2012-02-16 52 views
0

我正在創建一個科學計算器應用程序,我已經得到了所有按鈕的工作和數學。 我想要做的是添加第二個視圖,該視圖將顯示計算器執行的所有操作。最好的方法(我能想到的)是存儲所有的按鈕並將它們顯示在這個輔助視圖中。但我不知道如何在視圖之間傳遞按鈕。如何將按鈕存儲到不同的.xib中並查看它們?

我已經完成了關於從數據字段向標籤傳遞數據的教程,這與應該如何工作類似,但是當按下更多按鈕時,不需要將結果替換爲NSString方法的數據字段。

任何幫助,非常感謝。如果有什麼不清楚的,請告訴我。

+0

可能會帶着一個小對象,它有一個或兩個數組來存儲您的信息,也許可以將它實現爲單例,然後像使用其他對象一樣使用它 – 2012-02-16 13:42:00

+0

您需要設置一個委託協議。在這裏看到我的答案:[兩個視圖控制器之間的數據傳輸] [1]。 [1]:http://stackoverflow.com/questions/8740205/data-transfer-between-two-view-controller/8744043#8744043 – 2012-02-17 03:57:49

回答

1

您不一定需要兩個視圖控制器。你可以使用你的主視圖作爲容器(稱之爲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]; 

雖然你可以使用兩個視圖控制器,它是一個很好的設計模式去學習,這是一個簡單的解決方案,避免了在你的計算器應用程序的複雜性。

0

您可以將一個名爲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文件是接口,在你的情況下,它應該爲你的數據模型提供視圖。

相關問題