Tag: segue

在Swift 4中使用Segue

您在这里或更准确地说,是我写这篇文章的事实,向我们展示了我们过去如何视这些小事情为理所当然。 谁知道按下按钮并使iPhone进入下一个屏幕将在引擎盖后面做很多工作🙂 自从我开始开发iOS应用程序以来,手机上的每个应用程序都令我感到惊讶……也许是,这种惊奇促使我了解更多信息。 “他们到底是怎么做到的?”“太酷了!。我想知道我是否能够做到这一点..” 诸如此类的好奇心和问题是学习任何事物的动力之一。 如果您对某些东西感兴趣,那么您对它不了解的东西就会消失……只是为了让您有机会了解它。 这个序言已经足够了,让我们来谈谈您来到这里的事情… 从一个ViewController(屏幕)到另一个ViewController,执行简单的“ Segue”移动需要遵循哪些步骤。 步骤1:按住Control键并从“按钮”拖动到所需的VC,然后松开。 现在,根据您的要求选择“显示”或“显示详细信息”选项。 第2步:点击Segue箭头,并为其“标识符”命名 步骤3:将您用于创建序列的按钮链接为IBAction。 步骤4:在该IBAction中,编写以下代码: 选项1:如果您不想发送任何数据,那么下面的行就足够了。 performSegue(withIdentifier:“ goToNextViewController”,发送者:self) “ goToNextViewController”与我们为segue命名的名称相同,还记得吗? 选项2:如果您确实想在ViewController之间传递数据,则在此IBAction方法的下方(和外部),编写以下代码行: 覆盖func prepare(用于segue:UIStoryboardSegue,发件人:任意?){ 让destinationVC = segue.destination作为! SecondViewController destinationVC。 →您可以在这里访问另一个VC中的变量/属性…,这就是开始在两个VC之间传递数据的方式。 } 这就是现在的人们, 希望这可以帮助, 温暖的问候, Hiten…

让我们摇起来吧!

我发现自己正在使用名为“ Reflect”的新习惯应用程序,并试图使其外观整洁。 我试图避免使用经典的“添加”图标(+),而是选择更清洁的东西。 在花了一个小时的时间思考UI应该如何增加习惯后,我决定将其摇晃(摇动iPhone以触发动作)。 现在这很容易做到,以后我会花时间去做最后的解决方案。 我开始进行研究,阅读了大量内容,然后进入了最终代码。 这是给你的: 覆盖func motionBegan(_ motion:UIEventSubtype,并带有事件:UIEvent?){ performSegue(withIdentifier:“ addHabit”,发送者:nil) } 这不是我的最终解决方案,但同时可以完成工作。 我希望您会发现此信息对为您的应用程序添加一些有趣的功能很有用。 再见!

Xcode大学—故事板和Segues快速入门

以任何设备查看 不久前,在情节提要中创建新场景时,我们将获得一个500×500的正方形框来表示我们的视图。 老实说-我喜欢它! 它足够抽象,可以构建通用布局,而无需不知不觉地仅针对一个屏幕大小进行设计。 困难的部分是使用iPad上的每个屏幕尺寸,不同方向和分屏进行测试。 今天,我们可以单击屏幕底部的“查看为”,并为每个设备和方向呈现布局,而无需构建和运行项目。 IBDesignable / IBDesignable 是否曾经创建过自定义视图,并且不得不修改一些代码,运行应用程序并转到视图可见的位置,以查看其外观? 真浪费时间。 使用IBDesignable属性,您的自定义视图将立即在情节提要中呈现! 使用IBInspectable ,您可以在属性检查器中为任何自定义UIView或UIViewController类显示属性。 查看Nate Cook撰写的有关NSHipster的快速指南。 何时不使用情节提要 我们证明情节提要很棒,但并不总是如此。 有些事情他们做不到。 例如: 没有一些技巧,就不可能重用自定义视图,因为没有场景就无法创建视图。 当前,我们必须使用一个nib文件。 对于在不同视图控制器中重用的表/集合视图单元格,同样适用。 Segues非常容易,但是对于链式转换来说效果不佳。 立即关闭并显示视图控制器时,由于转换在转换之前已完成,因此显示将失败(带有已记录的警告)。 结论 Tabs vs. Spaces阵营可能永远不会停止战斗,但这并不意味着我们无法做出自己的命运。 故事板,笔尖与代码阵营可以并存,并在一个大型的快乐项目中享受每个阵营的好处。 如果您有任何疑问,请随时与我联系,或者随时在Twitter上与我联系。 不要忘记查看我们的聚会-Swift Coders和Learn Swift LA。 制表符与空格 有用的资源 Marcin Krzyzanowski编写的情节提要代码生成器—该框架将为情节提要创建具体类型,而不是使用字符串标识符。 想要尝试一会儿。 在AdrienCognée的情节提要中使用IBDesignable和可重复使用的Nib文件-我做了非常相似的事情,以便能够在情节提要中呈现自定义视图。 这是“ hacky”,但非常有用。

场景之间的数据传输-iOS App

这个主题对我和您都很重要,因为使用应用程序时,场景之间的数据传输一直在发生,因此我们必须确保一定要学习好。 在我的示例中,我将使用segue将数据发送到下一个场景,当涉及到返回上一个场景时,我将使用通知。 今天的挑战是创建一个列表,列表的数据将发送到下一个场景,并且有一个编辑场景,如果我们更改列表的内容,前一个场景的数据也会被更改。 以下是我通过segue将数据发送到下一场景的核心代码 覆盖func prepare(对于segue:UIStoryboardSegue,发件人:AnyObject?){//为segue准备数据 让destination = segue.destinationViewController为! DetailViewController //设置segue的目标控制器 如果segue.identifier ==“ lover1Segue” {//考虑我正在使用哪个segue destination.loverId = loverA.id //将数据发送到目标场景 destination.loverName = loverA.name destination.loverCons = loverA.constellation destination.loverImageName = loverA.photoName } } @IBAction func lover1Act(_ sender:AnyObject){ self.performSegue(withIdentifier:“ lover1Segue”,发送者:nil)//执行segue } 以下是我的核心代码,用于通过通知将数据发送回上一个场景 起始场景: func updateData(_ sender:AnyObject){ 让notiName = Notification.Name(“ updateData”)//定义通知的名称 NotificationCenter.default.post(名称:notiName,对象:nil,userInfo:[“ loverId”:self.loverId,“ loverName”:self.nameTxt.text!,“ loverCons”:self.consTxt.text!,“ loverImageName” :loverImageName])//发送通知 navigationController?.popViewController(animated:true)//将导航控制器弹出回到上一个场景 } 目的地场景: […]

在Swift 3中创建Unwind Segues

这篇博客文章是关于如何在Swift中创建放松的任务。 实现它们非常简单-因此,本文当然很短。 (源代码:https://github.com/mimicatcodes/unwindSegueExample) 但是等等,什么是放松的比赛? 假设我们有三个屏幕,分别是1,2和3。我们想通过创建Show segue从1切换到2,现在通过使用Storyboard中的Present Modally segue从2切换到3。 我们刚刚从2和3创建了一个Present Modally序列-这意味着如果我们想从3回到2,我们可以使用以下方法简单地关闭当前视图控制器(VC3): @IBAction func dismissVC(_ sender:Any){ 关闭(动画:true,完成:nil) } 熟悉,不是吗? 但是,如果我们想从3回到1,而不是2,该怎么办? 在这种情况下, 轻松的搜寻非常有用。 有了放开的序列,您现在可以从3退回到1,而无需先回到2,然后再通过导航控制器回到1。 请遵循以下四个简单步骤来创建Unwind segue: 在视图控制器中,您尝试回到示例VC1中,编写以下代码: @IBAction func unwindToVC1(segue:UIStoryboardSegue){} (请记住:在您要返回到TO的视图控制器中插入此方法很重要!) 2.在情节提要中,转到您要从中解散的屏幕( 在本例中为 3 ) ,然后按住Control键并将视图控制器图标拖到顶部的“退出”图标上。 如上所示,当您看到要连接的IBAction选项时,请选择刚刚在VC1中创建的展开segue操作。 3.转到情节提要中选定视图控制器的文档大纲,如下图所示选择展开序列。 现在,转到“实用工具”窗格中的“属性”检查器,并命名展开序列的标识符。 4.最后,将此代码编写在您希望触发放松segue动作的位置(在本例中为V3)。 @IBAction func goBackToOneButtonTapped(_ sender:Any){ performSegue(withIdentifier:“ unwindSegueToVC1”,发送者:self) } 可以在这里找到本教程的源文件:https://github.com/mimicatcodes/unwindSegueExample 编码愉快!

iOS –在Swift中解开Segue

글은글은iOS에서取消segue 내용입니다。 iOS에서Push Push Push Push / Present Present Present Present루어진루어진루어진루어진루어진루어진루어진루어진루어진루어진루어진루어진3루어진 1번视图-> 2번视图로 推送 1번查看-> 3번查看当前 2번查看-> 3번查看当前 3번视图-> 1번视图展开 이러한플로우를가지고다。 1个视图,2个视图和3个视图,1个视图和1个视图。 推推弹出式/现在解雇列表두가지 입니다입니다입니다。 3번视图에서1번视图의导航控制器를当前 하지만,이러한사용한다면 View가쌓이게다는문제점 이됩니다。 3번视图에서关闭-> 2번视图에서弹出 렇게가View가쌓이지않은채1번View로돌아오지만 아닐뿐더러리가플로우가아닐뿐더러다합니다합니다。 이않고점을제지가지지않고1번View방법방법이있습니다。 放松Segue的照片。 放松Segue的照片。 1번ViewController动作음다。 @IBAction func unwindVC1(segue:UIStoryboardSegue){} 단순히,코드만다。 2. 展开하는3번ViewController Controller情节提要에서 控制키를, 클릭된ViewController아이콘에서退出으로드래그하면 1번ViewController함수함수다뜹니다。 를segue를클릭해주세요。 解除对Segue가的依赖。 3. wind展开segue사사이드 标识符 해줍니다。 4. 3번ViewController 선언해주면展开Segue구현이완료됩니다。 […]

Swift4秘诀:如何以更好的方式处理序列标识符

func navigationToShowDetailController(){ self.performSegue(withIdentifier:“ showDetail”,发送者:nil) } //标记:-Seguesoverride func prepare(用于segue:UIStoryboardSegue,发件人:任意?){ 如果segue.identifier ==“ showDetail” { 如果让indexPath = tableView.indexPathForSelectedRow { 让object = objects [indexPath.row]为! NSDate 让controller =(segue.destination as!UINavigationController).topViewController as! DetailViewController controller.detailItem =对象 controller.navigationItem.leftBarButtonItem = splitViewController?.displayModeButtonItem controller.navigationItem.leftItemsSupplementBackButton = true } } } 由于我们使用字符串作为segue标识符,因此无需进行编译时检查,而且输入错误可能导致运行时崩溃。 此代码也很难推理。 例如,如果您错过了prepare(for:sender:)的segue标识符检查,会发生什么情况 当代码中存在多个问题时,情况将变得更加糟糕。 解决方案:将segue标识符定义为枚举,并享受强大的数据类型带来的所有好处。 枚举SegueIndentifier:字符串{ case showDetail =“ showDetail” } //标记:-Seguesoverride func prepare(用于segue:UIStoryboardSegue,发件人:任意?){ 警卫队让identString = segue.identifier,让标识符= SegueIdentifier(rawValue:identString)else […]

如何在具有不同故事板的ViewController之间进行选择

当您想在情节提要之间划分视图时,此功能将很有用,例如,当您在团队中工作时,您的同事可能正在一个特定的情节提要上工作,而您在另一个情节提要中工作而不会合并大问题! 让我们使用Single View Application模板在xcode中创建一个新项目: 为了在视图控制器之间进行隔离 ,我们将需要一个导航控制器 ,所以让我们开始吧,从xcode的导航器端转到Main.storyboard文件,然后从画布中选择ViewController ,然后在顶部栏菜单中选择编辑器/嵌入/导航控制器,如下所示: 然后转到“ 对象库”部分,选择“ 情节提要参考控件”并将其拖动到画布上: 让我们创建另一个 情节提要板,然后转到顶部栏菜单,选择File / New / File 选择“情节提要”选项,单击“下一步”,然后为其命名为“ 另一个”: 现在,从导航部分中选择Another.storyboard ,并在画布中从Object Library部分中拖动一个新的ViewController : 让我们继续在Another.storyboard上工作,我们需要为画布中的ViewController为其Storyboard Id Identity提供一个值,我们可以随便命名它,让我们使用此值命名: AnotherViewController 到目前为止,到目前为止还不错,现在让我们回到Main.storyboard文件,然后在画布中选择ViewController并从ViewController中的Object库中拖动一个Button控件: 然后按下控制键并单击鼠标左键将鼠标悬停而不释放,然后将其释放到我们之前在画布中创建的情节提要参考控件中,这样将出现一个弹出窗口,选择“ 显示”选项: 最后,我们在Main.storyboard中需要做的最后一件事是配置Storyboard Reference,一旦单击它,右侧的检查器面板将为我们提供一些选项,例如Storyboard ,该选项设置为Another值即另一个的名称。我们使用AnotherViewController值设置的故事板文件和参考ID 表示故事板ID,我们将其提供给位于another.storyboard文件中的另一个ViewController 现在运行它,即使知道两个控制器都位于不同的故事板文件中,也可以在视图控制器之间进行导航。

SWIFT4 —您需要了解有关使用Segues的全部知识!

注意:更新了Xcode 9.2,iOS 11和Swift 4。 今天,我将与您讨论塞格。 对如何使用segue的清晰理解构成了在IOS中开发应用程序的开发人员方法的基础。 如果所有应用程序只有一个屏幕且没有过渡,则它们将非常平坦。 即使您可以通过某种方式尽最大可能在单个屏幕上满足您企业的所有需求,其背后的样板代码也会使整个实现错误容易发生且毫无用处–抛开您作为IOS开发人员的职责吧! 在瞬息万变的IT世界中,本文到目前为止的假设是您正在使用最近发布的最新IOS 11和Xcode 9.2。 理论理解 :在现实世界中,“ segue”一词的意思是从一个地方到另一个地方-从A点到B点的不间断过渡形式。 在Apple世界中,segue是一种从一个屏幕(“视图控制器”)转移到另一个“视图控制器”的方法。 屏幕转换既可以通过编程方式进行,也可以使用segues进行,有时还可以同时使用两者。 可以基于用户单击按钮,从REST API(或端点)返回的值(如成功登录)或基于要在用户界面上将其转换为其他形式的用户选择来触发Segues。 简而言之,segue是IOS导航的基本构建块。 足够的理论知识,让我们打开Xcode,让我们进入泥潭! 步骤1:打开Xcode。 使用对象资源管理器在“界面”构建器上找到一个新的视图控制器并将其拖到main.storyboard。完成后,您的屏幕应类似于下面的屏幕。 步骤2:接下来,将按钮对象拖放到第一个视图控制器上。 第3步:通过选择按钮并在Mac中按Control键,将鼠标拖放到第二个视图控制器。 释放鼠标时,第二个View控制器上会出现一个下拉菜单。 在这里,您有以下选项:显示,显示详细信息,模态呈现,作为弹出窗口呈现和自定义。 显示:也称为Push segue。 这种类型的segue允许您在彼此顶部的视图控制器堆栈之间进行导航。 当我们嵌入导航视图控制器时,此类型导航的一种很好的用法(稍后将在单独的教程中对其进行详细介绍)。 现在,只需要了解将目标视图控制器从堆栈上的右推到左即可。 示例用法可能像浏览文件夹或电子邮件收件箱一样。 显示详细信息 :主要在使用拆分视图控制器时使用。 模态显示:显示具有动画的View控制器。 自定义Segue:您可以实施自己的自定义Segue ,并对行为进行控制。 在iOS 8中,已弃用的序列已被弃用,因此本教程将不介绍它们。 步骤4 :当您成功将第一个VC与第二个VC连接后,您的屏幕应类似于下图。 步骤5:就这样。 超级简单! 通过双击按钮或使用属性浏览器并更改title属性,为按钮赋予有意义的标题,还可以将第二个ViewController的背景色更改为默认的白色以外的其他颜色,这样您就可以看到发生了横向变化。 ! 苹果公司的工程团队为IOS开发人员做出了这样的努力。 点击播放,查看转换的实际效果。这是对新手用户的基本介绍。 在我的下一个教程中,我将更深入地介绍segue,以使您更上一层楼。 请继续关注更多信息。 如果您有任何疑问或意见,请在此处给我留言或发送电子邮件至fahdsaif@hotmail.com。

如何让多个tableview单元格导致相应的视图控制器?

我正在使用一个tableViewController作为初始视图控制器的应用程序。 它显然有一个tableview单元格中的项目列表。 我希望每个tableView单元格都导致不同的视图控制器。 这是我的主屏幕的一个例子:![在这里input图片描述] [1] 例如,我想要实现的是工具单元将带我到一个视图控制器与工具的详细信息。 当我点击武器时,应该把我带到一个视图控制器,关于武器的细节。 我已经设置了视图控制器,但我不知道如何创buildsegue到每个视图控制器。 注意:我在代码中创build了这些单元格,而不是在我的故事板中。 我做了一个项目的数组,我用indexpath.row来显示它们。 谢谢你的帮助!