iOS 和 Swift:ViewController 类已定义,但何时将其创建为对象?

Posted

技术标签:

【中文标题】iOS 和 Swift:ViewController 类已定义,但何时将其创建为对象?【英文标题】:iOS & Swift: ViewController class is defined, but when is it created as an object? 【发布时间】:2017-09-25 13:49:09 【问题描述】:

多年来,我学习 Swift 作为我的第一门新语言,我遇到了一些我对使用 Xcode 和使用单视图模板创建新 ios 项目感到好奇的事情。

在默认的ViewController.swift文件中,导入了UIkit,然后定义了ViewController类,继承自UIViewController。但我似乎无法找出 where如何 这个类曾经被创建或初始化为一个对象。

Default ViewController.swift example

如果我定义自己的类,或者甚至想创建另一个视图控制器,我必须首先将它初始化为某个地方的对象才能使用它。 那么这个默认的 ViewController 是在哪里制作的呢?

感谢您提供的任何帮助,让我尝试将其概念化!

【问题讨论】:

【参考方案1】:

打开您的“Main.storyboard”文件。确保在左侧边栏中选择了View Controller

然后在右侧边栏上你可以看到你的ViewController 类在类字段中:

因此,当您的应用程序加载时,会加载默认情节提要,该情节提要负责创建ViewController 类的实例并为您设置它。要对此进行测试,您可以创建一个新类,例如 ViewController2 并使其继承自 UIViewControllerViewController2 将出现在右侧边栏中:

然后您的ViewController2 代码将被使用而不是ViewController

【讨论】:

正是我想要的。谢谢@squill25! @Evan Pleasure!【参考方案2】:

您已更改 ViewControllerQuestion.app 文件的位置

【讨论】:

【参考方案3】:

我相信 UIApplicationDelegate 负责创建初始视图控制器。您仍然可以像您提到的那样手动创建视图控制器并继续使用它们。

通常您可以在情节提要中创建一个视图控制器,然后使用 Interface Builder 为该视图控制器设置一个 segue。

我希望这能回答你的问题。

【讨论】:

以上是关于iOS 和 Swift:ViewController 类已定义,但何时将其创建为对象?的主要内容,如果未能解决你的问题,请参考以下文章

不能在代码中调用 segue (Swift)

如何在swift中突出显示文本时触发事件

Swift 2 - 当 AlertController 出现时如何切换到另一个 ViewController?

在 Swift 应用程序中初始化子系统的位置

如何在使用 Swift 关闭 ViewController 期间将值从 ViewController B 传递给 ViewController A? [复制]

在 iOS 中使用 UITextField 条目作为数组