我在第一视图上有三个按钮。现在我在第二个视图中只有一个标签。如何将价值从一个页面传递给另一个页面?
- 通过点击第一按钮i得到的值1.
- 通过点击第二按钮i得到的值2.
- 通过点击第三按钮i得到的值3.
现在我想要在第二个视图上的标签上打印此值,并且每次我只想打印一个值。
- 当我按下第一个按钮,然后删除标签值,只有1将打印标签。
- 当我按下第二个按钮,然后删除标签值,只有2将打印标签。
- 当我按下第三个按钮,然后删除标签值,只有3将打印标签。
我在第一视图上有三个按钮。现在我在第二个视图中只有一个标签。如何将价值从一个页面传递给另一个页面?
现在我想要在第二个视图上的标签上打印此值,并且每次我只想打印一个值。
删除值是容易的,因为每次你打电话
[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]
属性。那就是你需要的。
在您的推断视图中,为您的标签写入属性。 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.
我认为这是不好的设计,有UILabel的等等属性,封装它们的类应该负责他们的更新,你应该传递一个数据对象然后它会更新它的标签。 –
我同意@SimonLee ..应该传递数据对象而不是设计元素。 – Shri
是否在另一个viewcontroller类中有标签? – booleanBoy