如何在 iOS 8/Swift 中构建自定义视图控制器的呈现?变量初始化被证明是困难的

Posted

技术标签:

【中文标题】如何在 iOS 8/Swift 中构建自定义视图控制器的呈现?变量初始化被证明是困难的【英文标题】:How do I structure the presentation of a custom view controller in iOS 8/Swift? Variable initialization is proving difficult 【发布时间】:2014-06-30 18:42:46 【问题描述】:

我想介绍一个自定义的UIViewController 子类。我的 Storyboard 中一个视图控制器中的一个按钮已连接以呈现此自定义视图控制器。

在代码中,我想为正在呈现的新视图控制器设置一些@IBOutlet。我习惯在prepareForSegue 中这样做,抓取destinationViewController,然后设置一些标签和图像视图等等。

但现在在 Swift 和 ios 8 中,我不断得到它

无法打开 Optional.none

这让我觉得在 iOS 8 中,当 prepareForSegue 被称为视图控制器的子视图时,视图控制器的子视图还没有全部创建?在这一点上,我无法与网点混淆吗?我应该如何设置它们?我尝试让这些多余的临时变量保存它们的数据(这似乎是糟糕的设计和冗余),然后在viewDidLoad 中设置实际的出口,但我得到了同样的错误,我的标签是viewDidLoad 中的nil

我应该如何设置这些?

【问题讨论】:

你能在prepareForSegue中添加你正在使用的代码吗? 【参考方案1】:

这是一个关于如何使用 prepareForSegue 函数的示例:

if segue.identifier == "yourIdentifier" 
    let yourViewController = segue.destinationViewController as YourDestinationViewController
    yourViewController.receivedArray = listArray

如果还不够,请告诉我并使用您现在使用的代码编辑您的问题。

【讨论】:

以上是关于如何在 iOS 8/Swift 中构建自定义视图控制器的呈现?变量初始化被证明是困难的的主要内容,如果未能解决你的问题,请参考以下文章

更改自定义 UIButton 的 TitleColor (iOS 8 + swift)

如何:在iOS中使用StackView View从XIB自我调整自定义视图

iOS 子视图、SRP 和自定义事件

使用 nib 自定义单元格和自动布局滚动跳转(ios 8 swift - UITableview)

如何在 iOS 中构建一个 Cocoa 触控框架?

iOS 自定义键盘模糊视图作为背景