- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
iOS 6 和 Xcode 4.5 有一个称为“Unwind Segue”的新功能:
Unwind segues can allow transitioning to existing instances of scenes in a storyboard
除了 Xcode 4.5 发行说明中的这个简短条目之外,UIViewController 现在似乎还有一些新方法:
- (BOOL)canPerformUnwindSegueAction:(SEL)action fromViewController:(UIViewController *)fromViewController withSender:(id)sender
- (UIViewController *)viewControllerForUnwindSegueAction:(SEL)action fromViewController:(UIViewController *)fromViewController withSender:(id)sender
- (UIStoryboardSegue *)segueForUnwindingToViewController:(UIViewController *)toViewController fromViewController:(UIViewController *)fromViewController identifier:(NSString *)identifier
展开转场如何工作以及它们的用途是什么?
最佳答案
展开转场(有时称为退出转场)可用于通过推送、模态或弹出转场向后导航(就像您从导航中弹出导航项一样)栏,关闭弹出窗口或关闭模态呈现的 View Controller )。最重要的是,您实际上不仅可以通过一个,还可以通过一系列推送/模态/弹出框来放松,例如使用单个展开操作“返回”导航层次结构中的多个步骤。
当你执行unwind segue时,你需要指定一个action,它是你想要unwind到的 View Controller 的action方法。
Objective-C:
- (IBAction)unwindToThisViewController:(UIStoryboardSegue *)unwindSegue
{
}
swift :
@IBAction func unwindToThisViewController(segue: UIStoryboardSegue) {
}
当您在 Storyboard中创建展开转场时,将使用此操作方法的名称。此外,在执行展开转场之前调用此方法。您可以从传递的 UIStoryboardSegue 参数中获取源 View Controller ,以与启动 segue 的 View Controller 进行交互(例如,获取模态视图 Controller 的属性值)。在这方面,该方法与 UIViewController
的 prepareForSegue:
方法具有类似的功能。
iOS 8 更新:展开转场也可与 iOS 8 的自适应转场配合使用,例如显示和显示详细信息。
让我们有一个带有导航 Controller 和三个 subview Controller 的 Storyboard:
从绿色 View Controller 中,您可以展开(导航回)到红色 View Controller 。您可以从蓝色放松到绿色,或者通过绿色放松到红色。要启用展开,您必须向红色和绿色添加特殊操作方法,例如这是红色的操作方法:
Objective-C:
@implementation RedViewController
- (IBAction)unwindToRed:(UIStoryboardSegue *)unwindSegue
{
}
@end
swift :
@IBAction func unwindToRed(segue: UIStoryboardSegue) {
}
添加操作方法后,您可以通过按住 Control 键拖动到“退出”图标来定义 Storyboard 中的展开转场。在这里,我们希望在按下按钮时从绿色变为红色:
您必须选择要展开到的 View Controller 中定义的操作:
您还可以从蓝色放松到红色(在导航堆栈中“两步之遥”)。关键是选择正确的展开操作。
在执行展开转场之前,会调用操作方法。在示例中,我定义了从绿色和蓝色到红色的展开转场。我们可以通过 UIStoryboardSegue 参数访问操作方法中展开的源:
Objective-C:
- (IBAction)unwindToRed:(UIStoryboardSegue *)unwindSegue
{
UIViewController* sourceViewController = unwindSegue.sourceViewController;
if ([sourceViewController isKindOfClass:[BlueViewController class]])
{
NSLog(@"Coming from BLUE!");
}
else if ([sourceViewController isKindOfClass:[GreenViewController class]])
{
NSLog(@"Coming from GREEN!");
}
}
swift :
@IBAction func unwindToRed(unwindSegue: UIStoryboardSegue) {
if let blueViewController = unwindSegue.sourceViewController as? BlueViewController {
println("Coming from BLUE")
}
else if let redViewController = unwindSegue.sourceViewController as? RedViewController {
println("Coming from RED")
}
}
展开也可以通过推送/模态转场的组合来进行。例如。如果我添加另一个带有模态转场的黄色 View Controller ,我们可以一步从黄色一直回到红色:
当您通过按住 Control 键并将某些内容拖动到 View Controller 的退出符号来定义展开 Segue 时,文档大纲中会出现一个新的 Segue:
选择 Segue 并转到属性检查器会显示“Identifier”属性。使用它为您的 segue 提供唯一标识符:
此后,可以像任何其他转场一样从代码中执行展开转场:
Objective-C:
[self performSegueWithIdentifier:@"UnwindToRedSegueID" sender:self];
swift :
performSegueWithIdentifier("UnwindToRedSegueID", sender: self)
关于ios - Unwind segue 的用途是什么以及如何使用它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59891551/
XML可以应用于 WEB 开发的许多方面,常用于简化数据的存储和共享 XML 把数据从 HTML 分离 现在的HTML 文档一般都是显示动态数据,每当数据改变时将花费大量的时间来编辑 HTML
在类(class)(方案)中,我们最近学习了允许函数接受任意数量参数的语法,例如; (define len (lambda args (length args))) >(len 1 2 3
在 redis-cli 中执行 info 命令时,会列出与该服务器相关的所有信息。 “evicted_keys”的目的是什么? 最佳答案 Redis 可以配置为根据需要自动清除键。如果这样配置,red
golang 空结构体 struct{} 可以用来节省内存 ? 1
有人可以解释一下资源文件夹中的 Info.plist 是什么吗?我如何在我的应用程序中使用它?提前致谢。 最佳答案 您可以在Info.plist文件中为所有类型的设备指定不同的常规资源和应用程序配置,
我需要减小可执行文件的大小,并且经常在我的可执行文件中将某些“不必要的” uses占用一定的大小。 例如: Unit1连接到Unit2,但是两个单元的导入为“ System.SysUtils”。 然后
我是 OOP 的新手。虽然我了解多态是什么,但我无法真正使用它。我可以有不同名称的函数。为什么我应该尝试在我的应用程序中实现多态性。 最佳答案 在严格类型化的语言中,多态性对于拥有不同类型对象的列表/
Possible Duplicate: What is the difference between a delegate and events? Possible Duplicate: Differ
这个问题在这里已经有了答案: Custom index.html javadoc page? (2 个答案) 关闭 7 年前。 我使用的是eclipse。一般情况下我们可以使用javadoc.exe
你能解释一下吗ValidateAntiForgeryToken目的并向我展示有关 MVC 4 中的 ValidateAntiForgeryToken 的示例? 我找不到任何解释此属性的示例? 最佳答案
我正在学习 RxSwift 并试图了解 Observable 和 PublishSubject aka Sequence 之间的主要区别。 据我了解,Sequences/PublishesSubjec
有时有人说,在使用 Azure 表时,实际上存在第三个关键分区数据 - 表名称本身。 我在执行分段查询时注意到 TableContinuationToken 有一个 NextTableName 属性。
在Apple提供的aurioTouch项目中,听说在performRender()函数下的AudioController文件中的AudioBufferList ioData携带了mic到音频播放器的音
MSDN 文档没有详细解释它的用途。 由于它是可选的,我几乎假设它类似于某种元数据。 我现在如何看待它,我想用它来为特定用户指定缓存,例如: new CacheItem(key: "keyName",
我正在学习 browserify,我正在尝试用它做两件基本的事情: 转换(通过 shim)非 CommonJS 模块以实现易用性和依赖跟踪 捆绑项目特定的库 我找到了一个工作流程,说明如何使用 Gul
我通过按 CTRL + C 访问 eix 1.8.2 的 Break 菜单。它看起来像这样: BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded
在 codeLabs 教程(Android - Kotlin - Room with a View)中,他们使用“viewModelScope.launch(Dispatchers.IO)”来调用插入
我通过按 CTRL + C 访问 eix 1.8.2 的 Break 菜单。它看起来像这样: BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded
请耐心等待,因为我没有太多地使用压缩算法,所以这对你们中的一些人来说可能是显而易见的。当某些流媒体视频开始滞后时,我总是注意到这一点。当我看到这个问题时我才意识到我很好奇: Twitter image
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 3 年前。 Improv
我是一名优秀的程序员,十分优秀!