2011-10-18 42 views
0

我在第一视图上有三个按钮。现在我在第二个视图中只有一个标签。如何将价值从一个页面传递给另一个页面?

  • 通过点击第一按钮i得到的值1.
  • 通过点击第二按钮i得到的值2.
  • 通过点击第三按钮i得到的值3.

现在我想要在第二个视图上的标签上打印此值,并且每次我只想打印一个值。

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

+0

是否在另一个viewcontroller类中有标签? – booleanBoy

回答

2

删除值是容易的,因为每次你打电话

[yourLabel setText:@"your value"]; 

你直接删除旧值。

现在,当我们谈论的观点之间移动信息这并不难,你可以使用例如应用程序委托

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

{ 
    // app delegate declarations 
    NSString *buttonValue; 
} 

@property (nonatomic, retain)NSString *buttonValue; 

而且在应用委托.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] 
+0

谢谢阿马尔。非常感谢你 – Rishabh

+0

欢迎你 –

+0

和旁边的标签,如果我拿一个文本,那么我将如何取文本中的整数值 – Rishabh

0

属性。那就是你需要的。

在您的推断视图中,为您的标签写入属性。 e.g: 在.h文件中

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

然后在你的。米

@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. 
+0

我认为这是不好的设计,有UILabel的等等属性,封装它们的类应该负责他们的更新,你应该传递一个数据对象然后它会更新它的标签。 –

+0

我同意@SimonLee ..应该传递数据对象而不是设计元素。 – Shri

相关问题