我遇到了问题,我希望在计时器到期时更改为另一个viewcontroller并使用此代码:
- (IBAction)Akkoord:(id)sender {
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *vc = [mainStoryboard instantiateViewControllerWithIdentifier:@"Innameformulier"];
[self presentViewController:vc animated:YES completion:nil];
[self performseguewithidentifier:@"nextcontroller"]
}
但是当我使用它时,我的prepareforsegue
方法中的变量没有通过。我怎样才能做到这一点?我已经尝试[self performseguewithidentifier]
,但这不起作用。
我的preparforsegue代码是:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
Innameformulier *IForm = [segue destinationViewController];
IForm.SignatureTransport = _drawImage.image;
IForm.KlantnaamInname = _Klantnaamtransport;
}
如何在计时器上调用此功能?
答案 0 :(得分:1)
在Interface Builder
中,选择要从中触发segue的视图控制器, CTRL -drag从中到目标View Controller并创建一个segue。
选择segue,打开Attributes Inspector并为其创建一个Identifier。
返回触发segue的View Controller Class
,如果您尚未对其进行评论,请添加方法prepareForSegue:
在prepareForSegue:
方法中,您应该具有以下内容:
- (void)prepareForSegue:(UIStoryboardSegue *)segue {
if ([segue.identifier isEqualToString:@"XXXX"]) {
DestinationVC *dVC = segue.destinationViewController;
dVC.attribute1 = self.anAttribute;
dVC.attribute2 = self.anotherAttribute;
}
}
现在你可以通过调用[self performSegueWithIdentifier:@"XXXX"]
来激活segue。
注意:你也可以从像UIControl
UIButton
子类中触发一个动作segue
答案 1 :(得分:0)
好的,你在这里做的是彻底绕过segue。你需要做这样的事情......
- (IBAction)Akkoord:(id)sender {
[self performseguewithidentifier:@"nextcontroller"]
}
这就是你需要做的。然后segue将为您创建nextController,然后prepareForSegue
中的代码将传递变量。
如果你想在计时器上使用,那么你只需要设置一个计时器,当它到期时你可以运行......
[self performseguewithidentifier:@"nextcontroller"]
只要您拥有带有此标识符的segue,它就可以在任何地方使用。永远都是一个计时器。