【发布时间】:2011-12-15 02:05:01
【问题描述】:
我正在尝试从作为应用程序视图控制器的子视图创建的视图中访问我在 AppDelegate 中作为属性创建的 int 和 float(我知道这是一个禁忌,我应该使用 MVC 范例,但这是为了课,我们这学期没有讲过)。我可以设置每个视图的值,然后在同一个视图中获取它们,但是当我想将所有值聚合到一个视图中时,我无法访问任何内容。在我拥有的每个视图的viewWillDisappear 方法中:
Final2AppDelegate* delegate = (Final2AppDelegate *)[[UIApplication sharedApplication]delegate];
后跟我要设置的值:
...
delegate.oldTotal = olds;
...
然后在聚合所有值的视图上,我有标签,其文本应该设置为存储在delegate 中的值,但我得到的都是 0。我不确定视图是否调用了willAppear 和willDisappear 方法,因为它们被控制为:
-(IBAction)loadBeverageView:(id)sender{
[self clearView];
[self.view insertSubview:beverageViewController.view atIndex:0];
}
和
-(void)clearView{
if(beverageViewController.view.superview){
[beverageViewController.view removeFromSuperview];
}else if(appetizerViewController.view.superview){
[appetizerViewController.view removeFromSuperview];
}else if(entreeViewController.view.superview){
[entreeViewController.view removeFromSuperview];
}else if(sideViewController.view.superview){
[sideViewController.view removeFromSuperview];
}else if(dessertViewController.view.superview){
[dessertViewController.view removeFromSuperview];
}else{
[billViewController.view removeFromSuperview];
}
}
我花了几天的时间试图让它发挥作用,但没有什么可显示的。有人可以在这里阐明一下吗?
AppDelegate 代码和我用来访问它的代码
我有我一直在尝试使用的整数和浮点数:
int eggTotal;
和
@property(nonatomic,assign)int eggTotal;
那么它们在实现文件中都是synthesized。我一直在分配这样的值:
Final2AppDelegate* delegate = (Final2AppDelegate *)[[UIApplication sharedApplication]delegate];
delegate.oldTotal = olds;
我一直在尝试像这样访问它们:
eggFinalQty.text = [NSString stringWithFormat:@"%d",delegate.eggTotal];
【问题讨论】:
-
你如何存储
ints和floats——你使用@property和@sythesize吗? -
是的,我将它们存储为 AppDelegate 的属性
标签: iphone ios ipad uiviewcontroller uiapplicationdelegate