比我更有知识的人可以performSegueWithIdentifier:sender:
为我解释吗?我需要切换视图(和类)并将一些 NSString 和 ID 传递到该视图的类。我想知道这是否可能performSegueWithIdentifier:sender:
谢谢!
比我更有知识的人可以performSegueWithIdentifier:sender:
为我解释吗?我需要切换视图(和类)并将一些 NSString 和 ID 传递到该视图的类。我想知道这是否可能performSegueWithIdentifier:sender:
谢谢!
首先,您必须在情节提要中设置 segue并为其提供适当的标识符。(单击 segue(左面板),然后单击 Attributes(右面板)。
然后,您可以将其链接到故事板中的按钮或选择的表格行,或者您可以在代码中使用performSegueWithIdentifier:sender:
.
在此之后,您的视图控制器将被发送prepareForSegue:sender:
消息。您在视图控制器子类中覆盖此方法,并且可以按如下方式配置目标视图控制器:
TargetViewController *targetVC = (TargetViewController*)segue.destinationViewController;
targetVC.string1 = string1;
等等。此方法中的 将是您在原始方法调用中sender
用作的对象。sender
大多数 segues 是由于某些用户交互而自动启动的。例如,如果您有一个从按钮连接到情节提要中的场景的转场,当点击按钮时,转场将自动启动。
有时,以编程方式触发 segue 是有意义的——例如,当用户赢得一轮游戏时,会显示一个高分场景。没有办法在情节提要本身中表达获胜的概念,因此您可以改为创建一个 segue,为其分配一个标识符,然后-performSegueWithIdentifier:sender:
在运行时调用。
UIViewController 上的另一个与 segue 相关-prepareForSegue:sender:
的方法是您应该重写以在目标视图控制器上执行任何自定义的方法。
在prepareForSegue:sender:
您有机会配置destinationViewController
: 时,您可以将所需的数据传递给它。它在Cocoa Application Competencies for iOS中进行了讨论。
今天我遇到了 performSegueWithIdentifier: not execution 由于没有在我的 URL 会话上设置委托队列的问题。
因此,无论如何,在创建 URLSession 时检查您是否真的设置了委托队列,否则 URLSession 将创建它自己的。
urlSession = [NSURLSession sessionWithConfiguration:sessionConfigObject
delegate:self
delegateQueue:[NSOperationQueue mainQueue]];
我在这里提到这一点是因为我经常看到 URLSession 处理最终会调用某种与 UI 相关的活动。并且 performSegue 需要在 main 上执行,否则它将什么都不做。