如何使用 Swift 访问 tabBarController 中的 ObjectAtIndex?

2024-03-07

我曾经在 obj-c 中说过

[self.tabBarController.viewControllers objectAtIndex:1];

但现在很快就不再有 ObjectAtIndex

self.tabBarController.viewControllers.ObjectAtIndex

Update

好吧,我要让它变得简单,让我们考虑一下我有 tabBarController 它包含 2 个对象 [第一视图控制器,第二视图控制器] 我正在尝试在对象之间建立委托 这是设置委托的代码

var Svc:SecondViewController = self.tabBarController.viewControllers[1] as SecondViewController!
Svc.delegate = self

当我运行时,我收到此错误 0x1064de80d: movq %r14, %rax 并且没有显示控制台错误


你的代码没问题:

var svc:SecondViewController = self.tabBarController.viewControllers[1] as SecondViewController!
svc.delegate = self

...但是你可以省略!在末尾标记并:SecondViewController类型定义,因为它可以通过强制转换推断出来:

var svc = self.tabBarController.viewControllers[1] as SecondViewController

出现此问题的原因是您尝试转换到错误的类。 尝试打印到调试日志中对象类的名称[1];在强制转换之前添加此内容以检查类名:

let vcTypeName = NSStringFromClass(self.tabBarController.viewControllers[1].classForCoder)
println("\(vcTypeName)")

UPDATE:

正如我们在评论中指出的,您应该将收到的视图控制器转换为UINavigationController:

var nc = self.tabBarController.viewControllers[1] as UINavigationController

稍后您可以检查nc.viewControllers财产,看看是否例如它topViewController is SecondViewController:

if nc.topViewController is SecondViewController {
    var svc = nc.topViewController as SecondViewController
    // your code goes here
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Swift 访问 tabBarController 中的 ObjectAtIndex? 的相关文章

  • 等到使用removePendingNotificationRequests删除来自UNUserNotificationCenter的本地通知 ios 10 swift 3

    使用新的本地通知UNUserNotificationCenter 我尝试删除带有一些标识符的通知 UNUserNotificationCenter current removePendingNotificationRequests with
  • Xcode:将信息从 UITableViewController 传递到 UIViewController

    我有一个 UIViewController 它应该根据 UITableViewController 中按下的单元格向我显示详细信息 目前我正在给他们讲一个续集 override func prepare for segue UIStoryb
  • SwiftUI - 方向更改后,NavigationView 标题和后退按钮被夹在状态栏下

    每当我将设备旋转到横向并再次返回时 顶部NavigationView 包括标题和后退按钮 被剪切在状态栏下方 最小可重现示例 struct ContentView View var body some View NavigationView
  • 领域对象返回 nil (Swift)

    我有一个自定义多边形对象 因此我可以将地图叠加保存到领域 我能够成功创建这个对象 但是当我想检索 var 多边形对象时 它返回 nil 当我打印多边形对象时 它可以很好地打印出所有数据 这是打印内容的示例 CustomPolygon nam
  • 检测 iPhone 上的长按

    我正在开发一个 iPhone 应用程序 它要求我检查是否已点击按钮并按住 6 秒 然后触发一个播放某种声音的动作 我应该如何检测这个 6 秒的点击 另一方面 用户还可以持续点击按钮 6 秒 然后会触发相同的操作 我应该如何处理多次点击 我怎
  • 如何让iOS 7下的UISwitch不采用其后面视图的背景颜色?

    关闭时看起来像这样 虽然我更喜欢灰色背景 我真的必须使用 UIImageView 吗 以下是我更改 iOS7 UISwitch 的填充颜色的方法 首先您需要导入 QuartzCore import
  • UITableView:popViewController 并将行索引保留到父控制器中?

    我有以下配置 一个视图控制器父控制器包含一个TableView父表带有自定义单元格 每个单元格显示 2 个标签 一个视图控制器子控制器包含一个TableView子表 当用户单击controllerParent的某个单元格时 会显示此视图 c
  • Swift 尝试呈现 UIAlertController,其视图不在窗口层次结构中(在 TWTRShareEmailViewController 之后呈现)

    我在应用程序的注册过程中使用 Twitter 登录 我正在询问用户的电子邮件 一旦我得到它 我想展示一个 UIAlertController 这是我的代码 func askForTWMail if Twitter sharedInstanc
  • 检查与 NSURLConnection 连接的有效 IP

    我目前有一个应用程序 它尝试根据我正在与之通信的某些服务器打开网络视图 但是 我允许用户输入自己的服务器 IP 以防 iphone ipad 和服务器 或其他设备 不在同一网络上 但是 我尝试使用 NSURLConnection 来检测是否
  • 使用 Swift 获取 UITableViewCell 中 UITextField 的 indexPath

    因此 我正在构建一个详细视图控制器应用程序 它显示一个包含两部分单元格的表格 标签和文本字段 我正在尝试检索文本字段值并将其添加到数组中 我尝试使用 textField superview superview 技术 但没有成功 func t
  • 原生编程对于移动开发有何优势?

    我需要为一家公司在一些主要的移动操作系统上开发应用程序 特别是 iOS Android 和 WP7 我最初计划为三种不同的操作系统编写三个独立的应用程序 每个应用程序都使用本机 SDK 然而 这样做有什么好处吗 有许多可用的跨平台工具 Se
  • 在 iPad 上使用 OpenCV 避免碰撞

    我正在开展一个项目 需要使用 OpenCV 实现碰撞避免 这是在 iOS 上完成的 iOS 5 及以上版本即可 项目目标 这个想法是将 iPad 安装在汽车仪表板上并启动应用程序 应用程序应该从相机中抓取帧并进行处理 以检测汽车是否会与任何
  • 检测wifi是否启用(无论是否连接)

    对于 GPS 跟踪应用程序来说 在打开 WIFI 的情况下记录位置信号会导致数据非常不精确或存在间隙 在开始跟踪之前 我已使用可达性查询来检测 wifi 是否可用 问题是 如果进行该查询时 wifi 已启用但未连接到网络 则表明无法通过 w
  • 本地通知替代周重复

    我有两个通知 我想隔周重复一次 例如 在第一周的星期一设置一个通知 并应在第三周的星期一重复 第二次通知设置在第二周的星期二 并且应在第四周的星期二重复 为此我该怎么办 获取周数 并根据周数做出决定
  • iOS 的 WiFi 连接通知,包括 SSID

    新手 IOS 程序员正在寻找一种在 iPhone 连接到 WIFI 网络时收到通知的方法 IE 关于以下转换的通知 3G转WIFI WIFI转3G WIFI 到另一个 WIFI 它应该能够知道我连接到哪个 SSID 在 Android 上花
  • 使用iOS类别创建新颜色

    我想创造一些新的UIColor我的应用程序中始终使用的 s RGB 有时会稍微调整 确切的颜色阴影正在争论中 目前 我必须从 RGB 创建新颜色 并且代码遍布各处并重复 有没有更好的方法可以创建一种新的颜色并在我的应用程序中使用它 UICo
  • 如何使用 swift 隐藏导航控制器中的后栏按钮

    在故事板 Xcode 6 iOS 8 和 swift 中 我在导航控制器中嵌入了 TableViewController 从对象库中 我拖放一个栏按钮项目作为后退按钮 它显示一个图标图像 当我单击该按钮时 我显示一个设置视图 我怎样才能隐藏
  • 我什么时候应该将可选值与 nil 进行比较?

    很多时候 您需要编写如下代码 if someOptional nil do something with the unwrapped someOptional e g someFunction someOptional 这似乎有点冗长 而且
  • 另一个 - “无法识别的选择器发送到实例”问题

    我查看了有关该主题的每个已发布问题 但没有一个给我解决方案 我的项目在很大程度上复制了开发库中的 AVPlayer 演示应用程序 减去清理功能 我有一个复制和粘贴AVPlayerDemoPlaybackView类 重命名为YOPlaybac
  • 在 Swift 中将进程标准输出重定向到 Apple 系统日志工具

    我正在为 macOS 构建一个启动子进程的 Swift 应用程序 该子进程将有用的信息记录到stdout 我在 Xcode 控制台中看到它 我现在想要实现的是重定向子流程stdout到Apple Log Facility 以便我们可以在部署

随机推荐

  • Python CSV 没有属性“Writer”

    有一些代码给我带来了麻烦 它在我的另一个脚本中运行得很好 但我一定把它搞砸了 The if csv 主要是因为我依赖于 argparser 中的 csv 选项 但即使我要在外面运行这个适当的缩进if statement 它仍然返回相同的错误
  • 我可以强制刷新 Facebook 对象的图像 URL 吗?

    我有几个由 Facebook 托管的对象 这些对象已发布到用户的活动日志中 图像的 URL 指向我们的内容交付解决方案 该解决方案重定向到版本化图像 这意味着 URL 可以保持不变 但图像可能会发生变化 正如你在这张图片中看到的 当图像更改
  • CSS 属性开头的 *+ 是什么意思? [复制]

    这个问题在这里已经有答案了 我在 CSS 声明代码中发现了这一点 我现在部分负责 margin 0 0 0 10px margin 4px 0 0 10px margin 3px 0 0 10px 0 the and 0 是我特别关注的 这
  • 为什么 FoldBack 的签名与 F# 中的 Fold 有如此大的不同?

    至少有两件事我不明白 从左侧折叠到右侧折叠的重构不仅需要在签名上进行大量更改 而且在每个地方都需要进行大量更改 具体取决于文件夹功能 没有办法在不翻转参数的情况下将其链接到列表 List foldBack T gt State gt Sta
  • C# 使用通配符复制多个文件并保留文件名

    我需要使用不包含完整信息的文本文件从目录复制多个文件 NCR txt Red 目标目录中有 红1 txt红3 txt红44 txt dest 目录需要有 红1 txt红3 txt红44 txt 我的代码 System IO Director
  • 组内的 Nexus REST API 查询工件

    我有一个 Nexus maven 存储库 我想利用 REST API 来查询我的特定组中的工件列表 我偶然发现了这个文档 但它似乎非常简洁 我找不到我需要的东西 https oss sonatype org nexus restlet1x
  • 使用 Keras 创建自定义条件指标

    我正在尝试使用 keras 为我的神经网络创建以下指标 自定义 Keras 指标 https i stack imgur com fSg0o png 其中 d y pred y true y pred 和 y true 都是向量 使用以下代
  • 在 Pipeline sklearn (Python) 中使用多个自定义类

    我尝试为学生做一个关于 Pipeline 的教程 但我阻止了 我不是专家 但我正在努力改进 所以谢谢你的包容 事实上 我尝试在管道中执行几个步骤来为分类器准备数据帧 第 1 步 数据框的描述 第 2 步 填充 NaN 值 第 3 步 将分类
  • 从hosts文件中获取主机名

    我想从我的模板中获取另一台主机 鉴于以下情况hosts file vm vm hostname monitoring monitoring hostname 我怎样才能访问monitoring hostname从模板 I tried mon
  • 如何使用 jpa/hibernate 在 playframework 子模块中保存模型实体

    我在 PLAY FRAMEWORK 中有一个项目 其中包含几个子模块 每个子模块都有这样的文件夹结构 app controllers models views conf submodulename routes build sbt 我想将所
  • FFMpeg 错误 av_interleaved_write_frame():

    这是我的代码 运行php代码后 FFmpeg version 0 5 Copyright c 2000 2009 Fabrice Bellard et al configuration prefix usr libdir usr lib s
  • ASP.NET 的密码强度控制

    我需要 ASP NET 的密码强度控制 我查看了ajax控制工具包中的控制 但它不是完全可配置的 我需要将它静态地放置在布局上 尝试使用谷歌 Google 密码强度 APIhttp www codeproject com KB ajax G
  • MVC3 - 文件下载 - 等待状态指示器

    好的 我已经完成了作业并发现了类似的线程 然而 我还没有找到好的答案 使用 MVC3 C Razor 视图引擎 我的场景非常简单 我有一个带有调用控制器上的操作的链接的视图 该操作返回动态生成的文件 该过程持续 1 到 10 秒 在此期间
  • 使用 linq 查询输出列表/其他数据结构

    有没有办法在通用集合上执行 Console WriteLine 例子 列表 a 有 a Key 0 apple a Value 0 1 a Key 1 bold a Value 2 2 有没有办法使用 LINQ 写出列表内容 键 值 a a
  • 在 matplotlib 中实现水平图

    我正在尝试在 matplotlib 中实现地平线图 请参阅 http square github com cubism http square github com cubism 基本思想是 您以窄长宽比显示时间序列 并且随着值的增加 超出
  • 更改 CLLocation 的坐标

    我是 Objective C 的新手 所以这可能是一个小问题 初始化位置后 CLLocation currentPoint CLLocation alloc initWithLatitude 0 longitude 0 以后如何更改纬度和经
  • XMLHttpRequest 无法加载 跨源请求仅支持 HTTP

    从 XML 文件获取数据时发现异常 101 XMLHttpRequest 无法加载 file C Users zaid Desktop xml cd catalog xml 仅 HTTP 支持跨源请求
  • 在 Unix 中编译并运行 java(来自 Windows)

    好的 这可以在 Windows 上运行 我的 Java 应用程序正在正常运行和运行 javac classpath ojdbc14 jar g foo java java classpath ojdbc14 jar foo 然而 当我在 U
  • 在 MVC 的部分视图中创建 DropDownListFor

    我创建了一个显示下拉列表的部分视图 html DropDownListFor m gt m SelectOption Model SelectOption 我收到对象未引用实例的错误 如果我将上面的代码放入我的视图 aspx 中 它可以正常
  • 如何使用 Swift 访问 tabBarController 中的 ObjectAtIndex?

    我曾经在 obj c 中说过 self tabBarController viewControllers objectAtIndex 1 但现在很快就不再有 ObjectAtIndex self tabBarController viewC