2012-02-16 47 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文件是接口,在你的情况下,它应该为你的数据模型提供视图。

相关问题