2

可能的重复:
在视图控制器之间传递数据

iOS开发新手在这里..

我的主 ViewController 上有一堆按钮,我想要发生的是当用户单击其中一个按钮时,我希望它将它们带到具有标签的单独视图,并且我希望该标签中的文本根据他们按下的按钮进行更改。

所以基本上我希望能够将数据从主 ViewController 上的按钮传递到第二个视图中的标签。

这可能有点令人困惑,我很抱歉,但任何帮助将不胜感激。

4

2 回答 2

1

如果可能的话,我建议你使用故事板。然后,您可以 ctrl 从每个按钮拖动到您拖出到情节提要上的新视图控制器。这将设置一个 segue,您可以使用方法 prepareforseguie 来传递您需要在新视图控制器中使用的数据。

于 2012-08-13T18:35:06.543 回答
0

假设您的带有按钮的视图控制器位于导航控制器中 - 大概在根...

你要做的是,为你的每个按钮添加一个目标,在代码中这可以用你的方法addTarget:action:forControlEvents:来完成UIButton

例如:

[myBtn addTarget:self action:@selector(tappedButton:) forControlEvents:UIControlEventTouchUpInside];

方法 tappedButton 将与被点击的按钮一起发送消息:

- (void)tappedButton:(UIButton*)sender{
    // exploit the button
}

在此方法中,您可以获得按钮的标题 -myBtn.titleLabel.text

然后,您可以创建一个新的视图控制器(让我们保持简单,假设您有自己的UIViewController子类MySimpleViewController.

在此类中,您有一个cameFrom属性,您可以在该属性上设置按钮的标题,在viewDidLoadMySimpleViewController,您将获得 的属性值cameFrom,这可能是方法实现。

- (void)tappedButton:(UIButton*)sender{
    MySimpleViewController *detail = [[MySimpleViewController alloc] init];
    detail.cameFrom = sender.titleLabel.text;

    [self.navigationController pushViewController:detail 
                                         animated:YES];
    [detail release];
}

所以在你的MySimpleViewController's viewDidLoad,你创建一个UILabel,给文本属性的值self.cameFrom并将其添加到视图中addSubview:

于 2012-08-13T18:33:17.400 回答