繁体   English   中英

如何在ViewController中为UIButton创建事件?

[英]How to create event for UIButton in ViewController?

我以编程方式添加了一个UIButton ,我想在按下它时调用一个方法,我不知道如何设计这样的模式:

  1. 我应该在哪里放置事件处理程序或操作方法? 在视图控制器或视图本身。

  2. 如果我将该方法放在视图控制器中,如何在方法中操作View的SubViews 我应该将所有SubViewsUIButton等)暴露给控制器,方法是将它们作为属性放入视图的头文件中吗? 实际上这个问题应该以这种方式提出:我如何通过代码实现视图中的SubViews通过Interface Builder与IBOutlet属性相关联...

查看此链接以了解iOS视图层次结构的基础知识:iOS视图入门并了解下图(学分:techrepublic.com):

致谢:http://www.techrepublic.com/

编程方式:

// Create your button wherever you wish (below is example button)
UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom];
myButton.frame = CGRectMake(0.0, 0.0, 320, 450);
[myButton setTitle:@"Yay" forState:UIControlStateNormal];
[myButton addTarget:self action:@selector(didTouchUp:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:myButton];

// This method will be called when touch up is made on the button
- (void)didTouchUp:(UIButton *)sender {
    NSLog(@"Button Pressed!");
}

说明:

[myButton addTarget:self action:@selector(didTouchUp:) forControlEvents:UIControlEventTouchUpInside];
  • myButton - 您的按钮视图
  • addTarget - 方法所在的目标
  • action - 要调用的选择器
  • forControlEvents - 用户将执行的控制事件以触发此操作

使用故事板:

在此输入图像描述

  • (A)确保故事板与正确的类对应
  • (B)将UIButton从对象库拖到故事板中

然后添加到ViewController.h文件:

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@property (weak, nonatomic) IBOutlet UIButton *myButton;

- (IBAction)didTouchUp:(id)sender;

@end

然后添加到ViewController.m文件:

- (IBAction)didTouchUp:(id)sender {
    NSLog(@"Button Pressed!");
}

最后,在UIButton和IBAction之间创建连接:

在此输入图像描述

  • (A)右键单击按钮视图
  • (B)将补救动作拖动到故事板上的按钮视图
  • (C)按didTouchUp:

这是完成这一步骤的基本流程......您可能希望通过阅读以下内容来扩展您的技能:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM