如何在IOS中将数据从一个视图传递到另一个视图控制器?

时间:2012-08-02 20:16:53

标签: iphone ios ios5 shake

我正在使用 Xcode 4.3.1 。我使用Storyboard创建了UI,它有许多View Controller。

问题

在我的应用中,我正在使用ShakeGesture。在摇晃我正在做一些操作,它的工作正常。但是,当摇动停止时,我需要将一些值传递给另一个View控制器来显示它。我看到很多帖子说它如何在点击按钮时传递值,但没有人与我的问题相关。

如果你解决我的问题会很棒

我的问题是

如何在摇动停止后将值从一个View传递到另一个View控制器?

我正在寻找任何示例或教程。非常感谢。

修改

上述问题的确切功能

我在第一视图控制器

中有一个按钮

enter image description here

当触发按钮时,它会弹出一些数据的pickerview。当用户选择它时,选择器值将替换按钮值。

enter image description here

然后当它停止时发生抖动我必须将数据传递给其他视图控制器。

代码

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
if (event.subtype == UIEventSubtypeMotionShake)
{
        // I need to pass data here. Thats i am confusing

}

}

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

通过ctrl从第一个视图控制器拖动到故事板中的第二个视图来创建一个segue。单击segue并转到身份检查器(按命令选项-3)。在标识符字段中给它一个名称,说“Shaking Stopped”。然后在你的动作结束方法中使用......

 [self performSegueWithIdentifier:@"Shaking Stopped" sender:self];

这将使视图切换到第二个视图。然后在准备segue时将其更改为...(当然使用您自己的值)

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:@"Shaking Stopped"]) {
<The Second View Controller> *controller = segue.destinationViewController
        //change your values in the other view controller here 
        controller.someValue = self.someValue //an example

答案 1 :(得分:0)

检测摇动手势的结束,在视图控制器中实现motionEnded:withEvent。

- (void) motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
 if (event.type == UIEventSubtypeMotionShake)
 {
   // perform the seque
 }
}

使用上述技术将数据传递给此视图控制器

相关问题