在没有故事板的情况下创建和执行 Segue

2024-02-08

我有一个没有故事板的应用程序,所有 UI 创建都是用代码完成的,我得到了splitView我想让它在 iPhone 上使用,因为该应用程序最初是为 iPad 设计的,因此当您在主视图中选择列表中的一行时,它在 iPhone 上不会执行任何操作,但在 iPad 上运行良好。

所以我的问题是我可以创建并执行允许在didSelectRowAtIndexPath方法 ?

这是我到目前为止所做的:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        let segue = UIStoryboardSegue(identifier: "test", source: self, destination: detailViewController!)
        performSegueWithIdentifier("test", sender: self)
    }

但是当运行并选择一行时,应用程序崩溃,告诉它需要一个执行处理程序,所以我添加了以下内容:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        let segue = UIStoryboardSegue(identifier: "test", source: self, destination: detailViewController!, performHandler: { () -> Void in
                let object = self.fetchedResultsController.objectAtIndexPath(indexPath)
                let controller = self.detailViewController!
                controller.detailItem = object
                controller.navigationItem.leftBarButtonItem = self.splitViewController?.displayModeButtonItem()
                controller.navigationItem.leftItemsSupplementBackButton = true


        })
        performSegueWithIdentifier("test", sender: self)
    }

现在,当选择一行时,xcode 表示没有带有此类标识符“test”的 segue。

我也尝试通过以下方式调用它segue.perform()并将performHandler内容添加到prepareForSegueMethod中:

 if segue.identifier == "test" {
            if let indexPath = self.tableView.indexPathForSelectedRow {
                let object = self.fetchedResultsController.objectAtIndexPath(indexPath)
                let controller = (segue.destinationViewController as! UINavigationController).topViewController as! DetailViewController
                controller.detailItem = object
                controller.navigationItem.leftBarButtonItem = self.splitViewController?.displayModeButtonItem()
                controller.navigationItem.leftItemsSupplementBackButton = true
            }
        }

它什么都不做,不会崩溃,只是突出显示我选择的行,仅此而已

你们能帮我吗?

编辑:正如 Oleg Gordiichuk 所说,没有故事板就不可能做我想做的事,所以感谢他的帮助:)


Segue 它是故事板交互的组成部分,可以从类的名称中理解UIStoryboardSegue。以编程方式创建 Segue 是个坏主意。如果我没有犯错的话,故事板会为你创建它们。

为了解决您的问题,请尝试使用一些常见的方法,例如简单地呈现ViewController.

let vc = self.storyboard?.instantiateViewControllerWithIdentifier("id") as! MyController
self.presentViewController(vc, animated: true, completion: nil)

据我从评论中的谈话中了解到。您希望使用不带故事板的 segues 创建表格视图到详细信息视图的导航。目前,如果没有故事板,这是不可能做到的。

为了将来的学习,尝试调查这个信息 https://www.raywenderlich.com/113394/storyboards-tutorial-in-ios-9-part-2.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在没有故事板的情况下创建和执行 Segue 的相关文章

  • Flutter 应用程序在 iOS 平台的 firebase 电话身份验证中崩溃

    我在我的项目中实现了 Firebase Phone auth 在 Android 端 一切正常 但对于 iOS 端 当我尝试从我的端发送验证码时 应用程序崩溃并失去连接 我已在下面提交了我的代码 主程序 dart class MyApp e
  • SwiftUI 意外地自动弹出 NavigationLink

    我有一个简单的用例 其中一个屏幕使用 NavigationLink 推送另一个屏幕 iOS 14 5 有一个奇怪的行为 即推送的屏幕在被推送后立即弹出 Code NavigationLink destination EmptyView Em
  • 如何为 iPhone 6+、6 和 5 指定不同尺寸?

    我想让 iPhone 6 6 和 5 上的视图看起来几乎相同 在附图中 我的意思是 例如 取消 按钮在 iPhone 5 中距离屏幕左边缘应为 30 像素 在 6 中为 35 像素 在 6 中为 45 像素 其他元素也类似 如何为每种类型设
  • 在 iOS 应用程序中拨打电话

    我有一些代码尝试在应用程序中进行调用 但它似乎不起作用 UIApplication myApp UIApplication sharedApplication NSString theCall NSString stringWithForm
  • 有什么方法可以询问方法的名称吗?

    我正在尝试调试我正在开发的 iPhone 应用程序 向各种源文件添加 50 条 NSLog 语句的想法让我感到很兴奋 我想做的是写一对陈述 比如 NSString methodName self methodName NSLog metho
  • jQuery:离线后 POST 出错(iOS 和 Chrome)

    我构建了一个具有离线功能的 HTML5 Web 应用程序 使用 AppCache 程序流程为 Online 在网络上时 应用程序预加载一些基本信息 工作 Offline 用户拿着装有应用程序的平板电脑offline 然后在应用程序上执行他们
  • $0 和 $1 在 Swift 闭包中意味着什么?

    let sortedNumbers numbers sort 0 gt 1 print sortedNumbers 谁能解释一下什么 0 and 1在斯威夫特中意味着什么 另一个样本 array forEach actions append
  • 使用数组中的字符串淡入/淡出标签

    func setOverlayTitle self overlayLogo text Welcome var hello String Bon Jour GUTEN nMORGEN BONJOUR HOLA BUENOS D AS BUON
  • 将类型传递给通用 Swift 扩展,或者理想情况下推断它

    说你有 class Fancy UIView 你想找到所有兄弟姐妹Fancy意见 没问题 https stackoverflow com q 37232743 294884 for v UIView in superview subview
  • 在 WKWebView 中禁用缩放?

    有谁知道在 WKWebView 中禁用双击和捏缩放的简单方法 我尝试过的任何方法都不起作用 Webview scrollView allowsMagnification false Error value of type WKWebView
  • 未知异常和崩溃

    当我尝试快速滚动表格视图或从远程重新加载数据时 我的应用程序崩溃了 当我先进行远程获取然后滚动表格视图时 一切似乎都工作正常 我不知道下面的崩溃日志意味着什么 它只是有时工作正常 有时崩溃 Incident Identifier 710A1
  • NSPredicate IN 从数组元素查询

    对于一个古怪的标题表示歉意 我有一个 Int 数组 我想定义一个 NSPredicate 来过滤掉 connectionType 等于数组中包含的值的项目 所以基本上是这样的 fetchRequest predicate NSPredica
  • 防止 iOS 键盘在 cordova 3.5 中滚动页面

    我正在使用 Cordova 3 5 和 jQuery mobile 构建 iOS 应用程序 我在大部分应用程序中禁用了滚动功能 但是 当我选择输入字段时 iOS 键盘会打开并向上滚动页面 我不想要这个功能 由于输入足够高 键盘不会覆盖它 我
  • 使用输入类型 = 文件捕获照片时移动 safari 崩溃

    我正在使用输入类型文件在 iOS 中启动相机 我正在使用以下代码行
  • 如何在 Swift 2.0 中使用 stringByAddingPercentEncodingWithAllowedCharacters() 作为 URL

    我在 Swift 1 2 中使用过这个 let urlwithPercentEscapes myurlstring stringByAddingPercentEscapesUsingEncoding NSUTF8StringEncoding
  • 有没有办法在 onclick 触发时禁用 iPad/iPhone 上的闪烁/闪烁?

    所以我有一个有 onclick 事件的区域 在常规浏览器上单击时 它不会显示任何视觉变化 但在 iPad iPhone 上单击时 它会闪烁 闪烁 有什么办法可以阻止它在 iPad iPhone 上执行此操作吗 这是一个与我正在做的类似的示例
  • 移动带有图像的文件夹

    我正在使用 Xcode 目前我的图像位于桌面上 将它们移至文件夹的正确方法是什么 当我只是复制粘贴它们时 我的项目不会构建 有没有简单的方法可以做到这一点 而无需将图像一一重新链接 1 在 Xcode 项目导航器中 选择要添加的项目的目标项
  • UIViewController 内的 UIsearchController 使用自动布局

    有没有人成功实施过UIViewController其中包含两个UISearchController searchBar and a UItableView使用自动布局来布局所有内容 我正在尝试实现类似的目标1密码 https itunes
  • 上传存档错误:“缺少 iOS 发行版签名身份......”

    我正在尝试使用 Xcode 将我的 iOS 应用程序存档上传到 iTunes Connect 但是当我单击 上传到 App Store 时 出现错误 Xcode 尝试查找或生成匹配的签名资产并 由于以下问题未能做到这一点 缺少 iOS 为
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • 如何让 ES6 生成器等待 Promise,就像在 redux-saga 中一样?

    我读过 生成器不会等待承诺 为什么发电机的情况并非如此 redux saga 以及如何让我自己的发电机等待 例如 这个传奇 takeLatest FETCH USER REQUESTED function const fetchPromis
  • 如何使用反应式表单包装像自动完成这样的 primeng 组件?

    我想将 primeng 自动完成组件包装在我自己的组件中 但无法弄清楚如何提供 formControlName 错误 未捕获 承诺中 错误 formControlName 必须与父 formGroup 指令一起使用 包装组件 html
  • 防止 OS X Chrome 和 Safari 上的弹性滚动

    我正在寻找一种方法来防止 Chrome 和 Safari 中 OS X 上发生的弹性滚动 如果你不明白我的意思 那就是当页面位于顶部时向上滚动 或当页面位于底部时向下滚动 并且页面后面会显示灰色背景 对于单页应用程序有一个 css 解决方案
  • connect-mongo 每秒创建新会话

    我的 Nodejs 应用程序托管在 Openshift 上 这是我的规格 节点 v0 10 35 express v3 4 8 我的 package json 依赖项 dependencies angular loading bar 0 9
  • 画布缩放通过 CSS 还是 JS 性能更高?

    以下文档提到了 HTML5 Canvas 性能缩放的一些准则 https developer mozilla org en US docs Web API Canvas API Tutorial Optimizing canvas Scal
  • 去掉小数点后的 0 值

    我想问是否有人知道删除十进制 0 值的查询 例如 字段名称百分比具有这些值 Percent 770 00000000000000000000 340 670000000000000000000 96 00000000000000000000
  • 如何使用 @angular/http 返回字符串而不是 Observable

    我正在将 Angular 4 与 net core WEB API 挂钩 Web API 根据传入的 ID 以字符串形式返回 CustomerName 这是 Angular 4 中的服务方法 我知道 Angular http 必须返回一个
  • 控制器如何手动设置某个字段的验证错误

    我有一个包含 3 个 ActiveRecord 字段的表单 其中一个字段有一种愚蠢的 依赖于国家的验证要求 例如 如果在设置向导表单上创建对象 我仅验证该字段 在我的 POST 处理程序中创建对象时 我想我可以调用errors add 来插
  • python 中的 Mechanizer - 选择没有名称的表单字段

    我有一个类似的问题选择机械化表单中的未命名文本字段 python https stackoverflow com questions 4787907 selecting an unnamed text field in a mechaniz
  • 使用 C++11 基于范围的正确方法是什么?

    使用 C 11 基于范围的正确方法是什么for 应该使用什么语法 for auto elem container or for auto elem container or for const auto elem container 或者其
  • SQL Server 不区分大小写的排序规则

    在 SQL Server 中使用不区分大小写的排序规则有哪些优点 缺点 就查询性能而言 我有一个数据库当前正在使用不区分大小写的排序规则 但我不太喜欢它 我非常想将其更改为区分大小写 更改排序规则时应该注意什么 如果更改数据库上的排序规则
  • 需要有关奇怪的 java.net.HttpURLConnection 行为的帮助

    我正在尝试使用 HttpURLConnection 下载 jpg 但遇到了一个非常奇怪的错误 这是网址 http www vh1 com sitewide promoimages shows m my antonio video super
  • 如何在 angularjs 中添加悬停元素的延迟?

    我有一个元素 span Hover Me span div class outerDiv p Some content p div class innerDiv p More Content p div div 这是JS mouseente
  • 即使安装包后,R 也找不到包

    我一直与zoo包 我很久以前就安装了 今天 我创建了一个新的 R 脚本 并运行library zoo 并得到以下错误 gt library zoo Error in library zoo there is no package calle
  • 暴力破解 PBKDF2 的速度大约有多快?

    在 linkedin 密码哈希泄露之后 我一直在研究我们的密码哈希 我们使用 Django 1 4 它使用 PBKDF2 这很棒 比之前的 SHA1 更进一步 然而我很好奇人们如何轻松地暴力破解这一点 我正在查看我们的密码复杂性规则 并且想
  • 使用 ES6 类的快速路由

    因此 以下代码在开发中有效 但在生产环境中运行时失败 并出现错误TypeError Router use requires middleware function but got a Object 到目前为止 我一定已经尝试了大约一百种不同
  • 从结构体数组中删除元素

    这可能是一个超级简单的问题 但它是 我有一个 结构数组 以及一个要删除的结构数组索引向量 例如 如果我有一个删除向量 2 6 这意味着我想删除数组中的第二个和第六个结构 并且数组将短 2 个元素 干净 简单的 matlab 方法是什么 如果
  • 在 JavaScript 中,如何在超时中包装承诺?

    使用 deferred promise 实现某些异步函数的超时是一种常见的模式 Create a Deferred and return its Promise function timeout funct args time var df
  • 如何在 geom_dotplot 中使用颜色?

    我有这个点图 ggplot mpg aes drv hwy geom dotplot binwidth 1 binaxis y stackdir center 呈现为 我想按制造商对点进行着色 如果我添加一个fill审美的 ggplot m
  • 在没有故事板的情况下创建和执行 Segue

    我有一个没有故事板的应用程序 所有 UI 创建都是用代码完成的 我得到了splitView我想让它在 iPhone 上使用 因为该应用程序最初是为 iPad 设计的 因此当您在主视图中选择列表中的一行时 它在 iPhone 上不会执行任何操