可能的重复:
在视图控制器之间传递数据
iOS开发新手在这里..
我的主 ViewController 上有一堆按钮,我想要发生的是当用户单击其中一个按钮时,我希望它将它们带到具有标签的单独视图,并且我希望该标签中的文本根据他们按下的按钮进行更改。
所以基本上我希望能够将数据从主 ViewController 上的按钮传递到第二个视图中的标签。
这可能有点令人困惑,我很抱歉,但任何帮助将不胜感激。
可能的重复:
在视图控制器之间传递数据
iOS开发新手在这里..
我的主 ViewController 上有一堆按钮,我想要发生的是当用户单击其中一个按钮时,我希望它将它们带到具有标签的单独视图,并且我希望该标签中的文本根据他们按下的按钮进行更改。
所以基本上我希望能够将数据从主 ViewController 上的按钮传递到第二个视图中的标签。
这可能有点令人困惑,我很抱歉,但任何帮助将不胜感激。
如果可能的话,我建议你使用故事板。然后,您可以 ctrl 从每个按钮拖动到您拖出到情节提要上的新视图控制器。这将设置一个 segue,您可以使用方法 prepareforseguie 来传递您需要在新视图控制器中使用的数据。
假设您的带有按钮的视图控制器位于导航控制器中 - 大概在根...
你要做的是,为你的每个按钮添加一个目标,在代码中这可以用你的方法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
属性,您可以在该属性上设置按钮的标题,在viewDidLoad
中MySimpleViewController
,您将获得 的属性值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: