如何将数据从一个视图传递到 IOS 中的另一个视图控制器?
Posted
技术标签:
【中文标题】如何将数据从一个视图传递到 IOS 中的另一个视图控制器?【英文标题】:How to pass data from one view to another view controller in IOS? 【发布时间】:2012-08-02 20:16:53 【问题描述】:我正在使用 Xcode 4.3.1。我使用具有许多视图控制器的 Storyboard 创建了 UI。
问题
在我的应用程序中,我使用的是 ShakeGesture。虽然摇晃我正在做一些操作,但它工作正常。但是,当摇晃停止时,我需要将一些值传递给另一个视图控制器以显示它。我看过很多帖子,它说如何在单击按钮时传递值,但没有一个与我的问题有关。
如果你能解决我的问题就好了
我的问题是
摇动停止后如何将值从一个视图传递到另一个视图控制器?
我正在寻找任何示例或教程。非常感谢。
编辑
上述问题的确切函数
我在 First View Controller
中有一个按钮当按钮触发时,它会弹出带有一些数据的pickerview。当用户选择它时,选择器值将替换按钮值。
然后当它停止时发生抖动,我必须将数据传递给其他视图控制器。
代码
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
if (event.subtype == UIEventSubtypeMotionShake)
// I need to pass data here. Thats i am confusing
感谢你们的帮助
【问题讨论】:
Passing Data between View Controllers 的可能重复项 【参考方案1】:通过 ctrl 从故事板中的第一个视图控制器拖动到第二个视图控制器来创建一个转场。单击 segue 并转到身份检查器(按 command-option-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
【讨论】:
如果在摇动停止时正在执行对新视图控制器的 segue,那么是的,如果没有,它将不会被调用。您可以将if
语句之后的行放在您想要的任何方法中(可能是在停止摇动时调用的方法)
我修改了我的答案。让我知道这是否有帮助
是的,这是我从here 得到的完美答案。它有助于 +1 的支持。你知道如何向其中添加数据【参考方案2】:
要检测摇动手势的结束,请在视图控制器中实现 motionEnded:withEvent。
- (void) motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
if (event.type == UIEventSubtypeMotionShake)
// perform the seque
使用上述技术将数据传递到此视图控制器
【讨论】:
感谢您的回答..您评论了执行序列..我在那边遇到问题..我没有任何关于在方法中执行序列的线索..你能更新一下吗请以上是关于如何将数据从一个视图传递到 IOS 中的另一个视图控制器?的主要内容,如果未能解决你的问题,请参考以下文章
如何将数据从子视图传递到父视图到 SwiftUI 中的另一个子视图?
如何以模态方式将视图添加到不在视图层次结构中的另一个视图 iOS