ios - 将一个UIButton连接到2段
问题描述:
我有一个UIButton,我试图将它连接到两个segues。使用哪个赛格取决于许多条件。ios - 将一个UIButton连接到2段
例如,当的UIButton(标题为 “下一个”)时,
如果(条件1),然后进入到屏幕A.别人去筛选B.
我相信我的代码是正确的(反正我已经包括了它),但问题是在故事板视图中,我可以使用segue将一个按钮连接到仅一个视图控制器。我该如何解决 ?
下面是我使用的代码 -
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([[segue identifier]isEqualToString:@"nextButtonID"]){
creditCardViewController *cvc = [segue destinationViewController];
}
else if([[segue identifier]isEqualToString:@"next2ButtonID"]){
depositInfoViewController *divc = [segue destinationViewController];
}
}
-(IBAction)nextClicked{
if([accountType isEqualToString:@"patron"]){
[self performSegueWithIdentifier:@"nextButtonID" sender:self];
}
else{
[self performSegueWithIdentifier:@"next2ButtonID" sender:self];
}
}
答
在故事板窗口,从该视图底部的视图控制器图标调速拖动,并将其拖动到目标视图控制器,给SEGUE的标识符,并重复下一个赛格。
答
你,除非你希望将一些数据传递给其他视图控制器
-(IBAction)nextClicked
{
if ([strCheck isEqualToString:@"launch Screen A"])
{
UIStoryboard *storyboard=[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];
ScreenA *screenA = (ScreenA *)[storyboard instantiateViewControllerWithIdentifier:@"ScreenA"];
[self.navigationController pushViewController:screenA animated:NO];
}
else
{
UIStoryboard *storyboard=[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];
ScreenB *screenB = (ScreenB *)[storyboard instantiateViewControllerWithIdentifier:@"ScreenB"];
[self.navigationController pushViewController:screenB animated:NO];
}
}
答
我经常这样做不需要提及任何代码prepareForSegue
。我的方法是制作两个“手动”游戏。
- 在Interface Builder CTRL +拖动从视图控制器1查看这个赛格瑞在IB控制器2
- 点击,进入属性和名称及其标识:nextButtonID
- 创建第二SEGUE,并按照相同的步骤将其命名为next2ButtonID
那么你的代码应该可以正常工作,我觉得。我遇到了一个问题,我从一个按钮开始继续 - 然后 - 我也试着调用不同的继续。通过使这些通用的“控制器到控制器”的继续,他们被设置为手动调用,就像你正在做的那样。
答
在夫特3:
在故事板,CTRL +拖动创建塞格斯从SourceViewController
到DestAViewController
和DestBViewController
,并给每个原因请看的标识符(例如 “ToDestA” 和 “ToDestB”)。然后:
@IBAction func onButton(_ sender: Any) {
if (testForA){
self.performSegue(withIdentifier: "ToDestA", sender: Any?)
} else {
self.performSegue(withIdentifier: "ToDestB", sender: Any?)
}
}
但它是从viewController,而不是从按钮。如果我理解正确。 – 2014-02-19 11:00:41
这是正确的。没有任何赛段是“物理”连接到按钮的。 – 2014-02-19 13:31:00
故事板只让我按ctrl +从它拖动一个segue。在一个segue拥有作为视图控制器的源代码之后,我无法再让该视图控制器成为新的segue的源代码。这是新的吗? – 2017-08-17 16:08:10