从子视图中的 UIButton 调用 UIViewController 中的方法

2024-03-13

仍在学习 Objective C 并获得正确的结构。

我有一个带有 UIViewController 的 iOS 应用程序,它有一个名为“doSomething”的已定义方法。在我的视图控制器中,我有一个视图,并在该视图中以编程方式创建了许多 UIButton(请参阅下面的带有一个按钮的示例)。

现在,当我按下按钮时,我想调用我的方法“doSomething”。我目前的做法是这样的:

[myButton addTarget:nil 
             action:@selector(doSomething:)
     forControlEvents:UIControlEventTouchUpInside];

由于我的目标为零,它会沿着响应者链向上,直到找到一个名为“doSomething”的方法。它确实有效,但感觉不太对劲。

我已经开始考虑使用@protocol,但并没有真正理解它。我一直在看一些教程,但对我来说还不够清楚。我使用过类似表视图控制器的协议,但定义一个协议对我来说是新的。

能否为这个具体案例提供一个例子?

Thanks!


当您的目标传入视图控制器时,将在该对象上调用该方法。

Edit:

[myButton addTarget:controller 
             action:@selector(doSomething:)
     forControlEvents:UIControlEventTouchUpInside];

假设您有一个名为控制器的变量,它是您的 UIViewController。如果您没有对控制器的引用,则只需将一个引用传递给您的视图即可。

Edit2:

查看界面:

@property (assign) UIViewController* controller;

查看实现:

@synthesize controller;

控制器:

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

从子视图中的 UIButton 调用 UIViewController 中的方法 的相关文章

  • 如何在 Xcode 上共同设计并启用第 3 方 CLI 的强化运行时?

    我的项目需要 Ghostscript 来完成很多任务 因此我已将 gs CLI 工具添加到我的项目资源中 然而 当我尝试对项目应用程序进行公证时 Xcode 向我显示了以下内容 我认为这可能是因为 Ghostscript 便携式 CLI 是
  • XCODE:如何从设备获取/验证准确的时间戳

    在没有互联网连接的情况下是否可以获得 NTP 或准确的时间戳 我不能接受 不信任带有 NSDate date 的设备时间戳 因为它可以由用户修改 并且我的应用程序将通过修改系统日期和时间而被黑客攻击 除此之外 是否有任何方法可以检查系统日期
  • 在实现文件中声明接口(Objective-C)

    在上一个版本的 xCode 4 3 中 我看到了预定义模板 例如我们的 Master Detail 模板 其中接口声明是在 m 文件中进行的 例如 在文件 MyFile h 中有 interface MyFile property nona
  • 如何命名一段代码并在不同的方法中调用它?

    我使用 Grand Central Dispatch 方法在队列中执行我的应用程序 我在该队列的计算中决定按钮的框架 我希望我的应用程序重新绘制其屏幕并计算旋转后的新帧 这是我所做的一些伪代码解释 CGFloat a 123 b 24 di
  • 迁移大型 Core Data 数据库崩溃

    我有一个将产品存储在核心数据文件中的应用程序 这些产品包括作为 可转换 数据的图像 现在我尝试使用轻量级迁移添加一些属性 当我使用一个小型数据库对其进行测试时 它运行良好 但当我使用一个接近 500 MB 的大型数据库时 应用程序通常会因内
  • 在 Objective-C 中,逗号用作语句分隔符时有什么作用?

    我正在查看第三方的一些源代码 并且反复看到对我来说新的语法 基本上他们用逗号而不是分号分隔语句 它可以编译并运行 但我不明白它在做什么 看起来是这样 if url url release url nil 有时他们也会在不使用 if 的情况下
  • 将 scanf 与 NSString 一起使用

    我希望用户输入一个字符串 然后将输入分配给 NSString 现在我的代码如下所示 NSString word scanf s word The scanf http www cplusplus com reference clibrary
  • 如何为带有继承的 C++ 类编写 C 包装器

    我只是想知道是否有一种方法可以为具有继承的 C 类创建 C 包装 API 考虑以下 class sampleClass1 public sampleClass public int get return this data 2 void s
  • 我应该在我的 iOS Objective-C 项目中使用它吗?

    Xcode 中的 构建设置 中的 Mach O 类型是什么 应该设置什么 它有这些选项 可执行文件 动态库 捆绑包 静态库 可重定位对象文件 自从我将其从可执行文件更改为静态库以来 我遇到了错误 Apple Mach O 链接器错误组 我的
  • 使用 Python-AppKit-Objective C 转换为预组合 Unicode 字符串

    苹果公司的这份文件技术问答 QA1235 http developer apple com qa qa2001 qa1235 html描述了一种将 unicode 字符串从组合版本转换为分解版本的方法 由于我对包含某些字符 例如重音符号 的
  • UITableView 无法一直滚动到底部[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我只是好奇 我做了一些UITable
  • 子视图的子层与更高的子视图重叠

    我有一个问题 我正在创建一个UIView这是从方法返回的 这部分很好 但我注意到 当我将子层添加到其中一个子视图时 这些层与子层添加的层次结构中较高的子视图 textView 和 imageView 重叠到testViewCopy出现在这些
  • 每个 CPU 核心处于 C0 电源状态的时间

    任何帮助弄清楚如何做到这一点都会很棒 在过去一秒内 每个 CPU 核心处于 C0 电源状态的时间有多少 这是针对 Mac 应用程序的 因此需要 Objective C cocoa 和 c OS X 没有任何公开 CPU c 状态的 API
  • 小视频播放

    根据我从互联网收集的信息 MPMoviePlayerController 类不支持小视频播放 因此 为了死马当活马医 我想知道可以使用什么样的方法来让小视频在屏幕的一角播放 而不中断屏幕的其余部分 到目前为止 我们已经遇到了两种可行的解决方
  • 在后台每 X 分钟执行一次函数不起作用

    我使用此代码每 X 分钟执行一次函数 void executeEveryOneMinute self myFunction dispatch after dispatch time DISPATCH TIME NOW int64 t 60
  • 如何读取 Xcode 6.1 Instruments .trace 文件?

    我一直在尝试阅读 trace文件 我使用生成的custom仪器模板 仪器 自动机 分配 Leaks using 仪器 https developer apple com library mac documentation Developer
  • 子类 B 继承自模板类 A [重复]

    这个问题在这里已经有答案了 我最近偶然发现了如下代码 但我无法理解它 template
  • iOS:我如何知道某个属性是否符合 KVO 标准?

    In the 键值观察编程指南 https developer apple com library archive documentation Cocoa Conceptual KeyValueObserving KeyValueObser
  • 比较 Objective C 中的 NSNumber

    我是 Objective C 的初学者 对这种情况有点困惑 我有以下代码 if number1 lt number2 NSLog THE FOLLOWING NUMBER NSLog number1 NSLog IS LESS THAN N
  • 如何检测 UISearchBar/UITextField 输入中的暂停?

    我有以下 UISearchbar 代码 void searchBar UISearchBar searchBar textDidChange NSString searchText UIApplication sharedApplicati

随机推荐

  • Google 地图 - 查找靠近我的路线的城市

    我想获得我所访问的所有城市的列表might在 A 点和 B 点之间经过 输入 A点为原点B点为目的地 Output A点和B点之间的路线 这是显而易见的 AND距离我的路线较近 X 英里的城市 城镇 地点的列表 我想向用户提供一个需要考虑的
  • RecordRTC:Ondataavailable 被调用两次。只有第一个文件正确,其他文件已损坏或太小[重复]

    这个问题在这里已经有答案了 我想以2秒的间隔记录本地和远程流并用Ajax上传到服务器 但问题是 ondataavailable 方法被调用了两次 因此同一个视频被上传到服务器两次 第一个视频可以正常播放 而其余视频要么已损坏 要么非常小 不
  • 包容还是排他? Intel Core IvyBridge 处理器中的 L1、L2 缓存

    我有 Intel Core IvyBridge 处理器 Intel R Core TM i7 3770 CPU 3 40GHz L1 32KB L2 256KB L3 8MB 我知道L3是包容性的 是多核共享的 我想了解有关我的系统的以下信
  • Google INVISIBLE reCaptcha + Bootstrap 验证器

    我有一张登记表引导验证器 http 1000hz github io bootstrap validator 我想在提交表单之前验证 google INVISIBLE reCaptcha 客户端 有一些exapmle https devel
  • 选择组合框时的事件

    我的问题是在 C WPF 的 ComboBox 中选择 ComboBoxItem 时如何执行操作 In 这个帖子 https stackoverflow com questions 22224172 wpf selectionchanged
  • 将整数四舍五入到另一个整数的最接近倍数

    我需要将整数舍入为另一个整数的最接近的倍数 100 的倍数情况下的结果示例 36 gt 0 99 gt 100 123 gt 100 164 gt 200 等等 我想出了下面的代码 它可以工作 但感觉 脏 int RoundToMultip
  • 配置错误:此配置部分不能在此路径上使用

    我在将站点部署到服务器时遇到错误 当尝试在 IIS 中加载主页或访问新站点上的身份验证时 出现错误 配置错误 此配置部分不能在此路径中使用 当该部分被锁定在父级别时 就会发生这种情况 锁定是 默认情况下 overrideModeDefaul
  • 如何获取 web2py 中的当前 url?

    在web2py中如何获取当前页面的完整url 我想要出现在浏览器地址栏中的 可能是重写的 url e g 生成它的最简单的方法可能是 URL args request args vars request get vars host True
  • 有没有办法在 Spock 中进行模拟参数捕获

    我环顾四周并尝试了不同的方法但无济于事 互联网上的例子很少 而且恕我直言 非常简单 我的用例 下面的 itocNetworkHandler 是模拟的 when we re doing stuff StandardResponse respo
  • 是否存在“java 标准”?

    我用 Java 编程已经有大约 4 年了 但我学到的东西都是自学的 我从未参加过该语言的正式课程 最近 我在工作中听到两个人在争论 99 的专业 Java 开发人员都使用的 编程 Java 标准 我在用 java 编写代码时从未听说过也没有
  • 单击按钮时为 gridview 中的所有复选框获取 gridview 项目中的复选框状态

    我有下面的代码 现在我需要跟踪每个 gridview 项目中的复选框状态 并通过单击按钮获取该信息以更新信息 我的按钮事件在网格视图的图像适配器的调用活动中 public View getView int position View con
  • 在 Rails 中添加索引具有多通关系

    考虑到以下关系 class Style lt ActiveRecord Base has many stylefeatures dependent gt destroy has many features through gt stylef
  • 在列表理解中一次添加两个项目[重复]

    这个问题在这里已经有答案了 我想一次将两个项目添加到列表理解中 一项是不变的 如何仅使用列表理解中的一个 for 循环而不使用其他函数来实现这一目标 不使用任何导入的答案将受到青睐 看看以下内容 gt gt gt mystring ABCE
  • 在学说中坚持具有两个外国身份的对象

    我在我的 symfony 包中的 Resources config doctrine 文件夹中使用 yml syntax 创建了一个实体 Sulu Bundle TranslateBundle Entity Translation type
  • 如何使用 Bower 安装最新的不稳定 AngularJS 组件?

    我使用 Yeoman 搭建了一个 AngularJS 应用程序 哟有角度 minsafe 当我运行 bower list 命令时 我得到以下信息 angular 1 0 8 latest is 1 2 0 rc 2 angular mock
  • 为什么我必须为同一依赖项指定“运行时”和“编译”?

    我依赖于编译和运行应用程序所需的一些工件 根据 Gradle 文档 运行时配置extends编译配置 因此肯定使用添加依赖项runtime暗示着一种隐含的compile依赖性 至少这是我的假设 但它不起作用 当仅依赖于使用的工件时runti
  • 如何在bash中退出if语句而不退出程序?

    重写这个问题以避免更多的反对票 因为对我来说删除它已经太晚了 我正在编写一个脚本 要求用户确认之前sourcing一些其他脚本 为了简化代码 假设有两个脚本sourced 但我希望用户可以source没有或仅是其中一个脚本 不是两者都存在
  • 使用 IE9 支持的 jQuery 旋转 div

    我有一些 div 基本上只是图像 当它们旋转 360 度时我会淡入它们 在所有主流浏览器中一切都可以完美运行 但 IE 除外 有效的 CSS3 代码 box width 400px height 400px display inline b
  • Jquery .Submit() 没有触发提交事件

    我有一个很小的问题 我想在下拉列表更改时使用 jQuery 提交我的代码 mydropDown change function myForm submit 但它没有提交 我还在 Firebug 控制台中触发了以下代码 myForm subm
  • 从子视图中的 UIButton 调用 UIViewController 中的方法

    仍在学习 Objective C 并获得正确的结构 我有一个带有 UIViewController 的 iOS 应用程序 它有一个名为 doSomething 的已定义方法 在我的视图控制器中 我有一个视图 并在该视图中以编程方式创建了许多