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
并使其继承自 UIViewController
。 ViewController2
将出现在右侧边栏中:
然后您的ViewController2
代码将被使用而不是ViewController
。
【讨论】:
正是我想要的。谢谢@squill25! @Evan Pleasure!【参考方案2】:您已更改 ViewControllerQuestion.app 文件的位置
【讨论】:
【参考方案3】:我相信 UIApplicationDelegate 负责创建初始视图控制器。您仍然可以像您提到的那样手动创建视图控制器并继续使用它们。
通常您可以在情节提要中创建一个视图控制器,然后使用 Interface Builder 为该视图控制器设置一个 segue。
我希望这能回答你的问题。
【讨论】:
以上是关于iOS 和 Swift:ViewController 类已定义,但何时将其创建为对象?的主要内容,如果未能解决你的问题,请参考以下文章
Swift 2 - 当 AlertController 出现时如何切换到另一个 ViewController?
如何在使用 Swift 关闭 ViewController 期间将值从 ViewController B 传递给 ViewController A? [复制]