我在用Xcode 4.3.1。我使用 Storyboard 创建了 UI,其中有许多视图控制器。
Issue
在我的应用程序中,我使用 ShakeGesture。在摇晃时我正在做一些操作,它工作正常。但是,当摇动停止时,我需要将一些值传递给另一个视图控制器来显示它。我看过很多帖子说如何在单击按钮时传递值,但没有人与我的问题相关。
如果您能解决我的问题那就太好了
我的问题是
摇动停止后如何将值从一个视图传递到另一个视图控制器?
我正在寻找任何示例或教程。非常感激。
上述问题的精确函数
我有一个按钮第一个视图控制器
当按钮触发时,它将弹出带有一些数据的选择器视图。当用户选择它时,选择器值将替换按钮值。
然后当它停止时发生晃动我必须将数据传递到其他视图控制器。
Code
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
if (event.subtype == UIEventSubtypeMotionShake)
{
// I need to pass data here. Thats i am confusing
}
}
这个问题之前曾被问过,但我无法得到解决方案,这就是我再次询问的原因。对此表示歉意。
谢谢你们的帮助
您可以使用prepareForSegue 调用在情节提要中显式传递数据。
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([[segue identifier] isEqualToString:@"ContactsViewControllerSegue"]){
ContactsViewController *cvc = (ContactsViewController *)[segue destinationViewController];
cvc.contacts = self.contacts;
cvc.delegate = self;
}
}
有关完整的教程,请查看此website.
要以编程方式触发 segue,您可以检查苹果文档,但这是他们关于方向改变的示例。
- (void)orientationChanged:(NSNotification *)notification
{
UIDeviceOrientation deviceOrientation = [UIDevice currentDevice].orientation;
if (UIDeviceOrientationIsLandscape(deviceOrientation) &&
!isShowingLandscapeView)
{
[self performSegueWithIdentifier:@"DisplayAlternateView" sender:self];
isShowingLandscapeView = YES;
}
// remainder of example omitted....
}
所以当晃动停止时你会触发segue,然后在prepareForSegue方法中准备下一个viewController。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)