美文网首页
@IBSegueAction 介绍和使用

@IBSegueAction 介绍和使用

作者: DearDan_f92e | 来源:发表于2019-06-14 11:58 被阅读0次

使用新的@IBSegueAction属性注释的视图控制器方法可用于在代码中创建segue的目标视图控制器,使用具有任何所需值的自定义初始化程序。 这使得可以在故事板中使用具有非可选初始化要求的视图控制器。 在源视图控制器上创建从segue到@IBSegueAction方法的连接。

在支持Segue Actions的新OS版本上(10.15),将调用该方法,并且它返回的值将是传递给prepare(for:sender :)的segue对象的destinationViewController。 可以在单个源视图控制器上定义多个@IBSegueAction方法,这可以减少在prepare(for:sender :)中检查segue标识符字符串的需要。

IBSegueAction方法最多需要三个参数:编码器,发送者和segue的标识符。 第一个参数是必需的,如果需要,可以从方法的签名中省略其他参数。 必须将NSCoder传递到目标视图控制器的初始化程序,以确保使用故事板中配置的值自定义NSCoder。 该方法返回一个视图控制器,该视图控制器与故事板中定义的目标控制器类型匹配,或者返回nil,以使用标准init(编码器:)方法初始化目标控制器。 如果你知道不需要返回nil,则返回类型可以是非可选的。

在Swift中,添加@IBSegueAction属性:


@IBSegueAction
func makeDogController(coder: NSCoder, sender: Any?, segueIdentifier: String?) -> ViewController? {
    PetController(
        coder: coder,
        petName:  self.selectedPetName, type: .dog
    )
}

在Objective-C中,在返回类型前面添加IBSegueAction:

- (IBSegueAction ViewController *)makeDogController:(NSCoder*)coder

                                             sender:(id)sender

                                    segueIdentifier:(NSString*)segueIdentifier

{

    return[PetController initWithCoder:coder

                                petName:self.selectedPetName

                                   type:@"dog"];

}

希望能帮到大家.

相关文章

  • @IBSegueAction 介绍和使用

    使用新的@IBSegueAction属性注释的视图控制器方法可用于在代码中创建segue的目标视图控制器,使用具有...

  • Runtime介绍和使用

    说到Runtime, 一直是很多(极少)人的软肋,含含糊糊的认知,被别人问到的时候,此题超纲... 将来跳槽粗去面...

  • OpenSSL 介绍和使用

    一、SSL 简介 按照我的理解来解释下,为了让网络通信更安全,需要认证和加密,认证是说明你是要找的人,加密是为了让...

  • HandlerThread 介绍和使用

    为了避免 ANR,我们常常需要在线程中做耗时操作,然后把结果抛到主线程进行处理。 参考:https://blog....

  • Lombok介绍和使用

    引入使用 官网有简单的安装和使用教程。 IEDA安装介绍 Lombok介绍和优点 https://projectl...

  • ajax介绍和使用

    AJAX ajax 是什么?(异步JavaScript和XML)Asynchronous JavaScript +...

  • Homebrew介绍和使用

    一、Homebrew是什么 Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、...

  • libvirt介绍和使用

    导读: why&&what libvirt具体介绍 API 剖析 driver 剖析 如何使用libvirt? w...

  • git 介绍和使用

    git 是什么? git 是目前世界上最先进的分布式版本控制系统。 git与SVN的主要区别 Git是分布式版本控...

  • OkHttp 介绍和使用

    OkHttp 网络通信层的库 ,Android 4.4后,HttpURLConnection底层实现已被OkHtt...

网友评论

      本文标题:@IBSegueAction 介绍和使用

      本文链接:https://www.haomeiwen.com/subject/lmpufctx.html