首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当我在Xcode11中创建一个新项目时,它没有故事板,如果我运行旧项目,它没有控制器?

当您在Xcode11中创建一个新项目时,如果没有故事板,可以按照以下步骤进行操作:

  1. 打开Xcode11并创建一个新项目。
  2. 在创建项目的过程中,确保选择了正确的项目模板,例如Single View App或其他适合您需求的模板。
  3. 在创建项目后,您将看到项目的文件结构。如果没有故事板,可能是因为您选择的项目模板不包含故事板。
  4. 若要添加故事板,请右键单击项目文件夹,选择"New File"。
  5. 在弹出的对话框中,选择"User Interface",然后选择"Storyboard"。
  6. 输入故事板的名称,并点击"Create"。
  7. 现在,您将看到一个新的故事板文件出现在项目中。
  8. 您可以在故事板中添加视图控制器、界面元素和连接它们的导航关系。

如果您运行旧项目时缺少控制器,可能是因为项目中的某些文件或设置丢失或损坏。您可以尝试以下步骤来解决这个问题:

  1. 确保您的旧项目文件完整且没有损坏。您可以检查项目文件夹中的文件是否存在,并确保没有任何错误或警告。
  2. 检查项目的构建设置,确保正确配置了视图控制器和相关文件的引用。
  3. 如果您在项目中使用了故事板,请确保故事板文件存在且正确连接了视图控制器。
  4. 检查项目的导航结构,确保正确设置了视图控制器之间的导航关系。
  5. 如果问题仍然存在,您可以尝试重新创建缺失的控制器或从备份中恢复项目文件。

请注意,以上步骤仅提供了一般性的解决方案,具体解决方法可能因项目的具体情况而异。如果问题仍然存在,建议您参考Xcode的官方文档、开发者社区或寻求相关技术支持以获取更详细和针对性的帮助。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

添加多个屏幕-创建格线布局

您可以下载Final Xcode项目,以帮助您与自己的进度进行比较。 查看控制器 在主故事板中,让我们构建我们的集合视图。首先,把视图控制器从对象库旁边我们的视图控制器。...关键路径:layer.cornerRadius 类型:数字 值:40 在主故事板中看不到它是正常的,但是,当您运行应用程序时,您将看到它。 ?...在“ 属性”检查器中,将“滚动方向”更改为“ 水平”并取消选中“ 显示”指示器。到目前为止,如果您运行该应用程序,您将看到3个类似的cell,并且它是可滚动的。问题是它现在做的不多。 ?...关闭 Collection View 当我们点击按钮时,我们想要关闭Collection View。转到主故事板,启用Assistant Editor,从按钮创建IBAction。...在返回cell之上,将cell的索引更改为索引路径行。 cell.index = indexPath.row 返回UIImage 当我们点击按钮时,它将在函数中返回UIImage类型的图像。

2.9K40

ARKit 的配置-在您的AR项目的幕后

它带有一个默认视图View Controller,它是运行应用程序时的第一个视图,如右箭头所示。好吧,那就是你没有定义一个启动画面。...基本上,故事板是设计师最好的朋友。 文件大纲 在左侧的文档大纲中,您可以看到所有对象的显示方式。您可以选择一个图标直接导航到该对象。 检查器 在右侧面板中,有与场景编辑器中不同的检查器。...查看控制器类 在导入下方,ViewController已被声明为UIViewController类的一部分,并且与故事板中的视图相关。类具有属性,方法和协议,所有这些都在开发中被利用。...场景视图 在课程内部,从故事板到ARSCNView的链接被称为SceneView。在Xcode中,此链接称为IBOutlet。您也可以在故事板中看到引用插座。...会话使用其会话实例控制所有处理,并由场景视图自动创建。当您开始体验时,会话开始。 你能告诉我另一个用于ARKit的流行技术的例子吗?让我给你一个提示:Animoji。

2.5K20
  • 将模型添加到场景中 - 在您的环境中显示3D内容

    基本视图 在Main.Storyboard中,我们已经提到ARSCNView默认放在视图控制器的顶部。但是,如果没有UIView作为基础,则仅限于您可以在用户界面上执行的操作。...添加按钮功能 我们刚刚在屏幕上添加了按钮,但它根本没有做任何事情。当我们触摸它时,让按钮执行某些操作。现在,打开Assistant编辑器并控制将故事板中的按钮拖到ViewController类。...焦点方块隐藏/显示选项 当我们在屏幕上显示模型时,我们仍然看到焦点方块干扰了我们漂亮的模型。如果我们在安置后隐藏它,你怎么说?...我们实际上没有选择,因为节点具有isHidden的属性,并且不显示一个for。好吧,不是我所知道的。 那么,让我们来看看这两个场景。...我们在故事板中定制了我们的视图,并在代码中播放动画。在下一课中,我们将使用虚拟对象本身。敬请关注。 原文: https://designcode.io/arkit-adding-models

    5.5K20

    【IOS开发基础系列】Storyboard专题

    因为所有的窗口设计在一个故事板文件中,你会更容易把握每次改动带给每个窗口的变化。     2、在故事板中可以描述各个窗口之间的转换。这种转换叫做 segue(连接)。...那么,在没有 MainWindow.xib 文件的情况下,故事板是怎样被加载到app中的呢?         ...现在你可以删除项目模板原来创建的那个viewcontroller,我们不再需要它。这样故事板中只会有一个TabbarController和它的两个 viewcontroller。         ...运行程序,什么都没有改变。不要奇怪,我们还没有提供数据源,因此表视图中不会显示任何行。 2.3.3 创建PlayersViewController         加一个新的 File 到项目中。...设置它的Mode 为 Center(在属性面板的 View 下面)以便当我们将图片放入时它不会被拉伸。         我将俩个 label 的宽度设置为210,这样不会遮住ImageView。

    1.3K30

    笨办法学 Python · 续 练习 49:`sed`

    在本练习中,您将尝试实现另一个精确的命令副本。在练习 48 的研究性学习中,您的任务是从您的ed实现中创建一个模块。如果你没有这样做,那么你需要为sed命令实现它,并且让sed使用它。...当我启动一个新的项目,我会去看看我写的其他东西,看看有什么我可以再次使用的东西。如果我花时间在较旧的项目中拉出我可以使用的模块。...回到第一个项目,将代码放入一个单独的模块,使这个第一个项目使用它,并且绝对不更改任何其它东西。 在适当的地方使用这个模块,一旦在原始的项目中,我的原始自动化测试运行良好,我就在新项目中使用该模块。...没有自动化测试的情况下,你不能做到它,所以如果你的ed项目没有测试,我想知道是否你读了这本书。回去,并确保你的测试完全覆盖了ed项目。...接下来,您将要从练习 9 中获取旧的代码,并重新启用它,或者在这个新项目上从零开始。一旦你确定了,你将开始使用ed模块实现尽可能多的sed。

    30520

    🦀 新手必看!小小白也能用Rust点亮LED,入门嵌入式开发(上)

    讲动人的故事,写懂人的代码 "你作为编程新手,为什么要学Rust?"我在微信里问小小白。...✅要验证Rust能否正常工作,请打开终端,进入你的用户主目录(通常只需在终端中输入cd命令即可进入)。然后运行以下命令,让Cargo为我们创建一个"Hello, world!"...程序(注意:以#开头的是注释行,用于说明命令的用途,你无需输入这些注释): # 进入用户主目录 cd # 创建名为hello-world的新项目 cargo new hello-world 这个命令会创建一个包含...当你运行 cargo new 命令创建一个新的 Rust 项目时,src 文件夹会自动生成。这个文件夹的名字是 source 的缩写,表示“源代码”。...; } 这段代码的意思是,当你运行程序时,屏幕上会打印出“Hello, world!”这句话。main.rs 文件是每个 Rust 项目必不可少的部分,如果没有它,程序就无法启动。

    53920

    Xcode:处理故事板的更好方式 享受Interface Builder的提示和技巧

    在本文中,我将在您处理项目中的故事板和笔尖时分享一些好的做法。您之前使用的是Interface Builder,或者您只是向这个方向迈出了第一步,这些提示可能对您有用。...---- 1.如果您在团队中工作,请为每个屏幕使用单独的故事板。如果你独自工作,这仍然是一个好习惯。 您的项目中是否有一个与此类似的main.storyboard文件?...这正是Interface Builder的创建方式。 但对开发人员而言,这可能会导致多个问题。 源代码控制:故事板合并冲突很难解决,因此简单地在单独的故事板中工作将使您的团队生活更轻松。...1.使用Xcode 7中引入的故事板引用 2.在代码中连接故事板。 你可以阅读更多关于第一种方式在这里。 我将介绍第二种方式,因为它仍然常用于复杂的项目。...在这种情况下,从按钮拖动到“退出”出口是期望代码已经在您的项目中。 通常,当您为按钮创建动作插座时,它会将代码放在拥有该按钮的同一个类中。

    1.4K30

    《从零开始学ASP.NET CORE MVC》:VS2019创建ASP.NET Core Web程序(三)

    中单击“创建新项目”。...第3步:在“创建”对话框中,右侧菜单栏“语言”下选择“C#”,然后点击“ASP.NET Core Web 应用程序” ? 第4步:在配置新项目菜单栏中,键入项目的名称。...我将其命名为StudentManagement。 我们将创建一个asp.net core web应用程序,在这个程序中,我们将创建、读取、更新、删除学生。 第5步:另外,指定要创建此项目的位置。...当我们不想要ASP.NET MVC的完整复杂性时,我们通常使用这种方法。我们可以将其视为MVC框架的更薄版本。我们将在即将发布的视频中详细讨论Razor Pages。...然后,可以在多个应用程序中复用此Razor类库(RCL)项目。任何使用RCL的应用程序都可以覆盖它包含的视图和页面。我们将在后面发布的视频中讨论RCL。

    3.9K20

    正式开始学习ASP.NET Core 6 Razor Pages 介绍

    启动Visual Studio 2019 单击“ 创建新项目”选项。 在随后的屏幕上,选择“ ASP.NET Core Web应用程序”模板,然后单击“ 下一步”。...在下一个屏幕上,为项目提供一个名称。我命名了 YoYoMooc.StudentManagement.RazorPage,然后点击下一步。...然后在配置新项目的过程中,选择我们需要的.NET 版本,这里我们选择使用.NET 6的版本,然后在其中创建项目的位置,然后单击“ 创建”按钮。...当我们运行该项目并导航到http://localhost:2221/index时,我们会在浏览器中看到索引页面。...Controller(控制器):处理 Http 请求,调用模型,请选择一个视图来呈现该模型 除了创建模型外,控制器还选择一个视图并将模型对象传递给该视图。

    3.8K10

    实战 | 记一次赏金2000美元的子域名接管漏洞挖掘

    每当我们有多个 CNAME 记录时,第一个 CNAME 记录会将我们重定向到下一个 CNAME 记录,依此类推。重定向将继续,直到我们到达最后一个 CNAME 记录。...如果一个网站有这个指纹那么它可能会受到攻击。但是,我之前多次遇到过这个Fastly指纹并且它并不容易受到攻击。它只有在满足某些条件时才会受到攻击,所以这是一个边缘案例。...我在 fastly.com 上已经有一个 2 年前创建的帐户,但 6 个月前删除了这个帐户,因为我相信 Fastly 是安全的(现在发现我错了,没有任何系统是绝对安全的)。...我去了 fastly.com 并创建了一个帐户。 2. 登录到我的 Fastly 仪表板并单击“创建交付服务”按钮。 3. 输入目标子域 (next.redacted.com) 并单击添加按钮。...PoC创建 确认漏洞后,我登录到我的 VPS 服务器并创建了一个名为“hosting”的目录。然后在“hosting”目录中创建一个名为“index.html”的简单 HTML 文件。

    1.2K30

    ​新年Geek手工:废弃的电视不要扔!拆掉显像管,改造一只炫酷矢量时钟

    近日,国外一位小哥Stephen Cass用PIC微控制器将旧的阴极射线管做成了时钟,并将制作过程发布在IEEE Spectrum,他究竟是怎么做到的呢,一起来看下吧~(含视频哦) 还记得曾经有一种非常流行的粒子加速器吗...该套件本身包括印制电路板和所有附带的组件,其中包括两个PIC微控制器,一个控制时钟并生成图形和文本,而另一个专用于定期在屏幕周围移动时钟以避免荧光体老化。...或许是因为儿时的记忆,我在这件事上显得格外胆小:当我开始对于用螺丝刀拆东西表现出极大兴致时,我的父亲,一名广播工程师,常常讲一些譬如在拔下电视机插头后仍有人被电视机高压电容器中存储的电压所伤,这类充满真实色彩描述的故事...焊接通孔元件非常直接简单,由于最高的元件(一个变压器)是首要元件之一,因此你可能需要使用某种电路板支架,而不是在工作时尝试将电路板平放。...如果没有这些模块,时钟会自动检测它是否被插入了50或60赫兹的壁式插座,并使用该频率作为参考时基。手动设置时钟仅需按压“快速设置”和“慢速设置”按钮,直到时钟显示正确的时间即可。

    52120

    ⚡️ 一个LED灯的自述:我是如何被5层代码点亮的

    它需要提供对微控制器以及板上的传感器、LED 等设备的抽象接口。对于定制开发板,通常没有现成的 BSP 可用。...通常只有在更高层抽象无法满足需求时,或开发更高层代码时,才需要直接使用 PAC。如果开发micro:bit v2开发板的嵌入式程序,我们将主要以隐式方式使用 nRF52 的 PAC。...如果没有这个包,程序就无法启动,因为找不到入口点。接着是panic-halt包。它的作用是在程序发生严重错误时,让系统进入一个安全的停止状态。...microbit-v2包则是我们的主角,它提供了与开发板交互的所有功能。当我们在代码中写use microbit::board::Board时,就是在调用这个包提供的功能。...如果没有它,我们就无法控制开发板上的任何组件。最后是embedded-hal包,它像是一个通用的翻译器,定义了控制硬件的标准接口。

    42010

    边缘计算和开放基础设施的重要性

    “边缘”是多样化的、分散的,通常是独立拥有和操作的,并且带有一组在平均数据中心中没有解决的约束。 旧的科幻电影描绘了一幅计算机将如何渗透到未来生活的方方面面的画面。...它已经发生了,而且几乎是在我们没有注意到的情况下发生的:家里有个人电脑变得很普遍,我们的移动电话变成了小型智能设备,我们的汽车开始为我们做决定,由成千上万个传感器和控制器控制 自动驾驶汽车、增强和虚拟现实...就我个人而言,当我的设备无法访问它们所需的计算、存储和网络资源时,我就会经历“连接焦虑”。我们不只是渴望与网络相连;我们还需要更多的带宽、更快的访问速度和更多的功能。...此外,在处理集中的数据中心时,创建或使用专用解决方案并利用公共云是有意义的,但是在处理边缘计算场景时,利用开放基础设施更有意义。...除了会议在OpenStack,特色课程的最新项目OpenStack Foundation-Kata容器和强烈关注其他开源技术相关基础设施运营商,包括Kubernetes, Docker, Ansible

    42400

    国外DIY牛人教你做Wifi机器人(最全教程)

    2.2 路由器 我已经改装了我的WRT54GL,现在它有2个串口和一个1GB的SD卡(用来充当1GB的硬盘)。在本项目中其实没有用到这个SD卡,但用到了一个串口。...2.3 微控制器的选择 在本项目中我评估了三种不同的微控制器,以下是一个简要的评估结果。...所以,我在Digikey花了不到14美元买了一个7.5A 12V的稳压器,并且还在上面加了一个散热器,因为我当时估计它运行起来有可能变得很烫,但在多次的实际使用中,我发现它甚至没有变暖,所以并不需要散热器...我猜这是因为它的控制器没有足够强大的自动对焦能力,但总的来说我还是很喜欢这款性价比不错的摄像头。...而我之所以没把LT1083 7.5A稳压器也放在盒子里,是因为它是在我烧掉第一块控制板后新加的一个东西,装在车子底部最省事。 当路由器启动时,装在项目盒背面的一个发光二级管就开始发出红光。

    2.4K50

    mvc(1)——新建一个ASP.NET MVC项目

    大家好,又见面了,我是你们的朋友全栈君。 一、新建一个空MVC项目  对于mvc的应用,我想第一步就应该是建立一个mvc项目了。废话不说了,直接上。  ...为保持事情简单,选择”Empty(空模板)”选项,并在“添加文件夹和核心引用”中勾选“ MVC复选框,这会创建一个基本的MVC项目,它带有最少的预定义内容。最后点击“确认”按钮。   ...二、新建一个控制器   在MVC体系架构中,输入请求是由控制器(Controller)来处理的。...MVC约定,将控制器放在Controllers的文件夹中,这是VisualStudio在建立项目时创建的。   ...你的浏览器请求这一URL时,看到的肯定是一个不同的端口号,因为VisualStudio在创建项目时会分配一个随机的端口。如果查看Windows任务栏的通知区,会发现一个IISExpress图标。

    1.7K40

    基于 FPGA 的电机控制

    电机 不管你信不信,我在大学最喜欢的课程之一是控制理论。在该模块中,我们研究了交流电机和直流电机,了解理论和实际用例。有多种类型的交流电机由交流电源供电,可分为同步电机和感应电机。...在两种类型中,有刷是最容易驱动的,因为它们只需要一个电源。在有刷直流电机中,电刷向连接有转子和线圈的换向器提供电流。电流在线圈中感应出电场,该电场被外部磁体(定子)排斥。...在 PWM 信号占空比为 100% 时,电机处于满电压并全速运行。如果提供 10% 的占空比,电机就会以其全速的 10% 运行。 然而,为了有效地运行电机,我们需要正确确定 PWM 周期。...因此,我们要选择一个至少是截止频率 5 倍的频率。 FPGA 为了开始这个项目,我们首先要创建一个针对 FPGA 板的硬件设计。...开始创建一个新项目 为项目命名 选择 RTL 项目但不指定来源 创建项目后,创建一个新的框图 从“板”选项卡将系统时钟拉到框图上 对 USB UART 也执行相同操作 从 IP 库添加 MicroBlaze

    54020

    CDP平台上的A-Z数据冒险

    Jon得出结论,需要用此新数据集扩充旧的客户仪表板,然后提出使用CDP中易于使用的可视化工具来构建Customer Insight应用程序的想法:数据可视化。...因此,它已动态缩小 他通过在Virtual Warehouse的下拉菜单中打开Data Visualization用户界面继续操作。 Jon找到现有仪表板并将其选中,以查看仪表板内容。...数据模型包含新的客户流失数据后,Jon将返回旧的客户仪表板,开始使用新数据进行扩充。短短的时间之后,他就启动并运行了更新的仪表板,可以开始与他人共享它了。...他创建了一个单行的Spark SQL作业,该作业将联接的结果读取到一个非范式化表中,并确保安排它每小时刷新一次。...CDE:作业创建向导上传pyspark作业 CDE:计划每小时运行一次作业 在短短的几分钟内,他就弄清楚了如何进行优化并启动它,使其可以通过CDP中的CDE定期运行。

    66820

    我们如何转型微服务?

    这个故事的技术层面, 我做过多次演讲并且在 SoundCloud 的技术博客上发表过系列文章。这些工程的知识是人们最感兴趣的, 但最近我意识到我从来没有向大众解释我们是如何开启这段微服务之旅的。...我先加入了后端团队,App团队,负责巨石架构 Ruby on Rails 应用。当时我们没有把它称为遗留, 而是称它为母舰。App 团队拥有 Rails 应用程序中的所有内容, 包括旧的用户界面。...它的大部分听起来和我在ThoughtWorks的项目很类似, 但有一个方面对我是全新的:强制性代码审查。...人们仍然会在旧的代码库中实现更改, 或者创建一些怪异的混合, 导致这些更新即在微服务中实现,又在大的整体中实现。...大家一直都在从一个功能跳到另一个功能, 我们意识到, 我们并没有对系统的任何部分形成责任制。如果他们不觉得对它负责,没有人愿意冒险抓取一些旧的代码。这是一个古老格言的实例:人人有责等于人人不用负责。

    89680
    领券