理解performSegueWithIdentifier

有人比我更performSegueWithIdentifier:sender:解释performSegueWithIdentifier:sender:对我? 我需要切换视图(和类),并携带一些NSStrings和ID到该视图的类。 我想知道这是否可能与执行performSegueWithIdentifier:sender:

谢谢!

首先,你必须在故事板中设置segue 并给它适当的标识符 。 (点击segue(左侧面板),然后点击Attributes(右侧面板)。

然后,您可以将其链接到故事板中button或表格行的select,也可以使用performSegueWithIdentifier:sender:在代码中调用它performSegueWithIdentifier:sender:

在此之后,您的视图控制器将发送prepareForSegue:sender:消息。 您可以在视图控制器子类中重写此方法,并可以按如下方式configuration目标视图控制器:

 TargetViewController *targetVC = (TargetViewController*)segue.destinationViewController; targetVC.string1 = string1; 

等等。 此方法中的sender将是您在原始方法调用中用作sender的对象。

大多数游戏是由于某些用户交互而自动启动的。 例如,如果你有一个从一个button连接到故事板中的场景的segue,当点击该button时,segue将自动启动。

有时,以编程方式触发segue是有意义的 – 例如,当用户赢得一轮游戏时,显示一个High Scores场景。 在故事板本身没有办法expression胜利的概念,所以你可以创build一个segue,给它分配一个标识符,然后调用-performSegueWithIdentifier:sender:在运行时。

UIViewController上的其他segue相关方法, -prepareForSegue:sender:是您应该重写以在目标视图控制器上执行任何自定义的方法。

prepareForSegue:sender:你有机会configurationdestinationViewController :这就是你需要传递数据的地方。 这在iOS的Cocoa应用程序能力中有讨论。

今天我遇到了performSegueWithIdentifier的问题:由于没有在我的URL会话上设置一个委托队列,所以没有执行。

所以,任何机会,检查你是否创build你的URLSession实际上设置一个委托队列,否则URLSession将创build它自己的。

 urlSession = [NSURLSession sessionWithConfiguration:sessionConfigObject delegate:self delegateQueue:[NSOperationQueue mainQueue]]; 

我在这里提到这一点,因为我经常看到URLSession处理结束了调用某种UI相关的活动。 并且执行Segue需要在主体上执行,否则它不会执行任何操作。