如何在一个视图控制器中使用两个 UIPickerView?

2024-03-23

我有两个UIPickerControllers 在一个视图控制器中。我可以让一个工作,但是当我添加第二个时,我的应用程序崩溃了。这是我用于一个选择器视图的代码:

import UIKit

class RegisterJobPosition: UIViewController, UIPickerViewDelegate {

    @IBOutlet weak var positionLabel: UILabel!

    var position = ["Lifeguard", "Instructor", "Supervisor"]

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    func numberOfComponentsInPickerView(PickerView: UIPickerView!) -> Int
    {
        return 1
    }

    func pickerView(pickerView: UIPickerView!, numberOfRowsInComponent component: Int) -> Int
    {
        return position.count
    }

    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String!
    {
        return position[row]
    }

    func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {        
        positionLabel.text = position[row]
    }
}

现在,我怎样才能让第二个选择器工作呢?假设我的第二个选择器视图被称为location(另一个叫做position)。我尝试在选择器视图方法中复制代码location但它不起作用。


这是我的解决方案:

  • 在故事板中添加两个UIPickerView您的视图的实例
  • 将第一个选择器的标签设置为1并设置2对于“属性检查器”下的第二个选择器
  • control + drag from each picker to the top yellow view controller icon and choose dataSource. Repeat the same choosing delegate
  • add UIPickerViewDataSource and UIPickerViewDelegate到你的视图控制器:

    class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {
    
  • 在视图控制器类中,为选择器创建空数组:

    var picker1Options = []
    var picker2Options = []
    
  • In viewDidLoad(),用您的内容填充数组:

    picker1Options = ["Option 1","Option 2","Option 3","Option 4","Option 5"]
    picker2Options = ["Item 1","Item 2","Item 3","Item 4","Item 5"]
    
  • 实现委托和数据源方法:

    func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
        return 1
    }
    
    func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        if pickerView.tag == 1 {
            return picker1Options.count
        } else {
            return picker2Options.count
        }
    }
    
    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
        if pickerView.tag == 1 {
            return "\(picker1Options[row])"
        } else {
            return "\(picker2Options[row])"
        }
    }
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在一个视图控制器中使用两个 UIPickerView? 的相关文章

  • Swift 中的 AURenderCallback

    我正在创建一个使用音频单元的应用程序 虽然 Objective C 中有很多代码示例 包括 Apple 自己的 aurioTouch 等 但我正在尝试用 Swift 编写整个代码 我已经能够设置我的 AUGraph 并通过它运行一些音频 但
  • iOS Swift 中断键盘事件

    我在拦截键盘事件时遇到问题 我已将我的 iOS 与 SteelSeries Free 游戏手柄控制器 连接 当连接到 iOS 时 它将被检测为蓝牙键盘 这是在我打开Notes时测试的 按下游戏手柄上的任何按钮都会写一个字母 我需要拦截此按钮
  • 我应该在我的 iOS Objective-C 项目中使用它吗?

    Xcode 中的 构建设置 中的 Mach O 类型是什么 应该设置什么 它有这些选项 可执行文件 动态库 捆绑包 静态库 可重定位对象文件 自从我将其从可执行文件更改为静态库以来 我遇到了错误 Apple Mach O 链接器错误组 我的
  • Swift 2 OAuth2 LinkedIn 连接

    我将使用 Swift 2 和 Xcode 7 制作一个本机 iOS 应用程序 用户应该使用 LinkedIn 和 OAuth 2 登录 但我想知道应该如何开始设置 我对 OAuth 2 没有太多经验 有好的教程或示例应用程序吗 我看到了雷
  • 具有自签名证书的 Alamofire / ServerTrustPolicy

    我想使用 Alamofire 通过带有自签名证书的 https 连接与我的服务器进行通信 我的环境在本地主机上运行 我尝试连接 但响应始终如下所示 Success false Response String nil 我用下面的代码完成了它
  • CMake Xcode生成器创建了一个无法构建的项目

    我有一个使用 CMake 构建系统的 C 项目 我使用 MacBook Pro 进行开发 因此当我使用终端时 一切都非常顺利 我可以构建我的项目 然而 今天我发现我可以在使用 CMake 生成器创建相应的项目后使用 Xcode gt cma
  • iPhone SDK:拖动 UIImageView 时出现问题

    我正在尝试在我的应用程序中拖动 iPhone 屏幕上的 UIImageView 目前我设置的拖动功能很好 拖动图像确实会在屏幕上移动它 问题是你不必拖动图像视图来移动它 你也可以拖动屏幕上的任何地方 它会移动图像 我是这个平台的新手 所以我
  • 在启用滚动的情况下扩展堆栈视图内的 UITextView

    我正在尝试使用自动布局和 Stackview 来实现一些目标 我有一个垂直 Stackview 其中包含 UIView UITextView 和 UIView 如下所示 我已经在这里查看了以前的答案 但找不到一个干净的解决方案来实现此目的
  • 解包可选值时意外发现 nil - 使用 ALAMOFIRE

    我正在尝试使用 Alamofire 获取 JSON 格式的数据 当我使用一个 URL 时 它工作正常 当我使用另一个 URL 时 我在解包可选值时收到错误 我似乎无法追踪错误来自哪里 我已采取将代码放入 ViewDidLoad 来跟踪错误
  • Swift - 在 TableView 单元格中使用步进器递增标签

    这里又是一个 Swift 初学者 我只是想在每个 TableView 单元格中使用一个步进器来增加同一单元格中的标签 我发现了关于这个主题的几个问题 但它们包含其他元素 我无法提取基本概念 Swift Stepper Action 更改同一
  • swift 中闭包和函数作为参数的区别

    我有将近 4 年的 Objective C 经验 并且是 swift 的新手 我试图从 Objective C 的角度理解 swift 的概念 所以如果我错了 请指导我 在目标 c 中 我们有块 可以稍后异步执行的代码块 这绝对是完全合理的
  • 具有透明背景的 Swift 模态视图控制器 [重复]

    这个问题在这里已经有答案了 我知道这个话题很受欢迎 但我在编程语言中遇到了一些问题 事实是我仍然不明白我把代码放在哪里 好吧 我就来说说整个案子 我正在尝试制作一个与正常情况稍有不同的模态 Swift 通过单击按钮 ViewControll
  • xcode“将源编译为”覆盖特定文件

    我有一个项目 必须将 编译源为 值设置为 Objective C 不 根据文件类型 在我的主项目中不起作用 我从框架 特别是 OpenFeint 获得的文件有问题 该文件在编译为 Objective C 时出现编译错误 error poin
  • SwiftUI 更新主菜单 [已解决] kludgey

    真正的问题 你如何更新mainMenu在 SwiftUI 中 它真的可以工作吗 我在 SwiftUI 中构建了一个基于 MacOS 文档的应用程序 其中包括所有内置的文件菜单命令 即关闭 保存 复制 重命名 等 在保存文档之前 我会验证结构
  • 将 UIRefreshControl 用于 UIWebView

    我在 iOS 6 中看到了 UIRefreshControl 我的问题是是否可以通过下拉来刷新 WebView 而不是像在邮件中那样让它弹出 我使用 rabih 的代码是 WebView UIRefreshControl refreshCo
  • git 可以与 Xcode 集成吗?

    有没有办法将 git 存储库与 Xcode 内置的 SCM 功能一起使用 Xcode 4 原生支持 git WWDC 2010 上的开发者工具国情咨文演讲 在这里了解更多 Xcode 4 中的新增功能 http developer appl
  • CIAdditionCompositing 给出不正确的效果

    我正在尝试通过平均其他几个图像来创建图像 为了实现这一点 我首先将每个图像变暗 其系数等于我平均的图像数量 func darkenImage by multiplier CGFloat gt CIImage let divImage CII
  • UIApplication.shared.delegate 相当于 SceneDelegate xcode11?

    我在 SceneDelegate 中定义了一个 let 属性 我希望一些 ViewController 能够在场景中访问它 在 UIKit 中 我可以像这样访问 App Delegate 属性 UIApplication shared de
  • 您可以在 Apple TV 而不是外部服务器上托管 TVJS 文件吗?

    我已经从 Apple 下载了 TVMLCatalog 应用程序 该代码分为两部分 client 这包含 TVML 和 TVJS 文件 TVML目录项目 这是设置 TVML TVJS 的基本 Xcode 项目 我正在尝试主持clientTVJ
  • ArraySlice 中的 Swift [重复]

    这个问题在这里已经有答案了 在数组上使用 prefix 方法后 我得到了所谓的 arraySlice 我怎样才能将其转换为数组 我试图从 FacebookGraphApi 获取 Ints 然后请求前 3 个 前缀 3 并尝试将它们添加到新数

随机推荐

  • OpenJPA 和 Spring-boot 配置

    我正在努力解决 spring boot 应用程序的基本配置 并使用 OpenJPA 作为 jpa 实现 基本上我总是以 引起原因 org apache openjpa util MetaDataException 类型 class com
  • 使用 Felix 和 Maven 创建完整的 OSGi 应用程序

    我有一组使用 Maven 构建的 OSGi 包 我想知道是否有一个可用的 Maven 插件可以让我执行以下操作 指定要包含在发行版中的一组捆绑包和 或指定单个捆绑包并解决依赖关系 构建一个完整的分发框架 我的意思是一个包含所有需要的包的 z
  • 如何计算术语-文档矩阵?

    我知道术语文档矩阵是一个数学矩阵 描述文档集合中出现的术语的频率 在文档术语矩阵中 行对应于集合中的文档 列对应于术语 我在用sklearn 的 CountVectorizer从字符串 文本文件 中提取特征以减轻我的任务 以下代码根据以下内
  • 使用 PhpUnit 时 Composer 无法加载加载器

    我正在尝试将 PhpUnit 与 Composer 一起使用 为了这个目的我做了 1 将 phpunit 添加到 req Composer 部分 require php gt 5 3 0 require dev phpunit phpuni
  • 在sql server 2008中将varchar转换为十进制

    我将此数据作为 varchar 00072330 如何将其转换为 SQL Server 2008 中类似 723 30 的小数 尝试这个 declare data as varchar 8 set data 00072330 print c
  • VS2015 或 NP++ 中的多行正则表达式

    我需要在多个文件中替换以下模式 this dialogs 当我设置时这工作正常single line在这里标记 https regex101 com r dF2yG3 2 https regex101 com r dF2yG3 2 但是我无
  • python创建DDE服务器并不断发送数据

    我正在尝试用 python 编写一个 DDE 服务器 它需要将不断变化的字符串发送到作为 DDE 客户端连接的程序 连接到 DDE 服务器的程序使用以下 DDE 设置来连接 服务 Orbitron 主题 Tracking 项目 Tracki
  • 在额外维度上扩展 NumPy 数组

    在额外维度上扩展给定 NumPy 数组的最简单方法是什么 例如 假设我有 gt gt gt np arange 4 array 0 1 2 3 gt gt gt shape 4 gt gt gt expand np arange 4 0 6
  • 有没有办法增加 Google Chrome 中 localStorage 的大小以避免 QUOTA_EXCEEDED ERR: DOMException 22

    我编写了一个网络应用程序 允许您将图像存储在 localStorage 中 直到您点击保存 因此 如果信号较差 它可以离线工作 当 localStorage 达到 5MB 时 Google Chrome 会在 javascript 控制台日
  • 在 Python 3 中查找网站中最常见的单词 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要使用 Python 3 代码查找并复制在给定网站上出现超过 5 次的单词 但我不知道该怎么做 我已经浏览了有关堆栈溢出的档案 但
  • JQuery 在事件上加载脚本(点击)

    selector click function here I would like to load a javascript file let s say js script on click event js 这有可能吗 我不确定 但我记
  • 我可以在ironpython中使用命名参数和可选参数吗

    我希望在ironpython中加载 net dll 但是 net dll 中的静态函数之一有一些命名参数和可选参数 比如 绘制 重量 w 高度 h 面积 1 我只能使用完整的参数吗 完全支持命名参数和可选参数 NET 长期以来一直支持 VB
  • 为什么在非 ARC 环境中的属性上使用关键字“strong”?

    我刚刚开始使用 Xcode 4 2 和 iOS5 进行开发 创建空的选项卡式应用程序项目后 我注意到属性上使用了新的关键字 strong 我继续读下去这个帖子 https stackoverflow com questions 670102
  • HTML 'class' 元素属性可以包含换行符吗?

    HTML5 元素的 class 属性可以包含换行符吗 规范中是否允许并且浏览器支持它吗 我问这个问题是因为我有一些代码可以动态地将各种类插入到元素中 这创建了一个很难管理的很长的行 通常我会使用变量构建类值 但我使用的 CMS 要求模板条件
  • Thread.start() 和 Thread.run() 有什么区别?

    为什么我们称start 方法 该方法又调用run method 我们不能直接打电话吗run 请举例说明有什么区别 不 你不能 调用run就会执行run 方法在同一个线程中 无需启动新线程
  • 模板函数的模板参数

    我刚刚发布了一个skiplist容器库 Sun 编译器对此有抱怨 template
  • canvas getContext("2d") 返回 null

    我已经尝试了几种不同的方法 但我一直遇到同样的错误 我之前已经将图像加载到画布上 但自从几天前更新了 Safari 以来 我遇到了错误 我将发布我目前拥有的内容 但我尝试使用 jQuery html 的 onLoad 属性等来实现 var
  • Array 和 ArrayCollection(Flex) 的区别

    数组和数组集合有什么区别 首先 ArrayCollection是为Flex框架设计的 它的作用就像一个Proxy对于给定的Array实例 这意味着它可以侦听对源代码所做的修改Array并在发生这种情况时自行更新 它还包含框架特别需要的附加方
  • “开始..提交;” SQLite 失败

    我正在尝试学习如何使用BEGIN COMMIT在 SQLite 中 我正在尝试这段代码 BEGIN INSERT INTO fields VALUES field1 COMMIT 但它失败了 Error near INSERT syntax
  • 如何在一个视图控制器中使用两个 UIPickerView?

    我有两个UIPickerControllers 在一个视图控制器中 我可以让一个工作 但是当我添加第二个时 我的应用程序崩溃了 这是我用于一个选择器视图的代码 import UIKit class RegisterJobPosition U