按下按钮后,将参数传递给IOS中的视图

时间:2012-09-03 20:22:47

标签: ios xcode

我是IOS编程的新手。到目前为止,我一直在android编程。因此在android中按下按钮代码传递参数时会是这样的:

Intent i = new Intent(MainScreen.this,OtherScreen.class);
Bundle b = new Bundle();
b.putString("data_1",data);
i.putExtras(b);
startActivity(i);

并且在打开的活动上,我会写这样的东西:

Bundle b = getIntent().getExtras();
ski_center=b.getString("data_1");

我需要在IOS中的MainScreen和OtherScreen中更改哪些方法才能实现上述目标。

基本上我会在我的主屏幕中有3个按钮,每个按钮都会打开其他视图但每次都会传递不同的参数。

每个按钮的例子我在MainScreen.m中有这样的代码

@synthesize fl;
-(IBAction) ifl:(id) sender {
}

所以我需要你在哪里放置“缺失”代码的帮助。

1 个答案:

答案 0 :(得分:2)

为UIViewController(Android的Activity)声明一个iVar,就像Java中的属性一样。

在MainViewController.m中

OtherUIViewController * contr = [[OtherUIViewController alloc] initWithNibname...];
contr.data = yourData;

已编辑:已添加完整代码...

Intent i = new Intent(MainScreen.this,OtherScreen.class); Bundle b = new Bundle(); b.putString( “_1”,数据);

这里的MainScreen是调用代码,现在在iOS中它将是MainUIViewcontroller

  • 像这样创建一个OtherUIViewController:

OtherUIViewController.h

@interface OtherUIViewController : UIViewController
{
       NSData* data;
}
@property (strong, nonatomic) NSData* data;
在OtherUIViewController.m

@implementation OtherUIViewController.m
@synthetize data;

// override
- (void)viewDidLoad
{
    [super viewDidLoad];
// do something with data here
}

有3种不同的行为,数据可以是int,也可以是NSString。 在- (void)viewDidLoad中,您将检查data值并执行3个不同的事情。

我希望它有所帮助