如何将值从一个页面传递到另一个页面?

时间:2011-10-18 06:14:04

标签: iphone objective-c xcode

我在第一个视图上有三个按钮。现在我在第二视图中只有一个标签。

  • 点击第一个按钮,我得到了值1.
  • 点击第二个按钮,我得到了值2。
  • 点击第三个按钮,我得到了值3。

现在我想在第2个视图的标签上打印此值,每次只打印一个值时。

  • 当我按下第一个按钮然后删除标签值时,只有1将打印在标签上。
  • 当我按下第二个按钮然后删除标签值时,只有2个将在标签上打印。
  • 当我按第三个按钮然后删除标签值时,只有3个将在标签上打印。

2 个答案:

答案 0 :(得分:2)

删除值很简单,因为每次调用

[yourLabel setText:@"your value"]; 

您正在直接删除旧值。

现在,当我们谈论在视图之间移动信息时,并不难,您可以使用例如应用程序委托

添加应用程序委托.h文件

{
   // app delegate declarations
   NSString *buttonValue;
}

@property (nonatomic, retain)NSString *buttonValue;

在app delegate .m文件中添加

@synethize buttonValue //on the top

现在你添加你的观点

#import YourAppDelegate.h

然后在代码中

MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];

设置buttonValue的值
[appDelegate setButtonValue:@"value"];

现在当你在第二个视图中时,只需用

读取值
MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];

[appDelegate buttonValue]

答案 1 :(得分:0)

属性。这就是你需要的东西。

在您的后续视图中,为您的Label写入属性。 例如: 在.h文件中

@interface classname
{
   UILabel *myLabel;
}
@property(nonatomic,retain)  IBOutlet UILabel *myLabel;

然后在你的.m

@implementation classname
@synthesize myLabel;

既然你已经为UILabel编写了属性(getter和setter方法),你可以只在你创建第二类对象的第一个类中设置它的值。

SecondClass *secondObj = [[SecondClass alloc]init];
secondObj.myLabel.text = buttonClicked; //buttonClicked is NSString set when corresponding button is clicked e.g:1,2,3 etc.