gpt4 book ai didi

iphone - 什么时候按钮(UIButton)的目标不是 "self"?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:19:29 26 4
gpt4 key购买 nike

我是 iOS 的初学者,在编程教程中以编程方式添加按钮时,目标始终设置为 self ,并且在创建它的 Controller 中,编写了一个 Action (IBAction) .或者通过界面生成器,将目标设置为文件所有者。

我的问题是在什么情况下(一个例子会很好)目标不是自己。

我能想到的一个场景是,在类(不是 ViewController)方法中,根据条件创建按钮,因为该类不是 ViewController,当初始化该类的对象时,将设置对当前 ViewController 的引用,如果按钮出现,它将用作为按钮定义操作的目标。

最佳答案

您可以将选择器指向任何目标 - 通常,self 是目标的原因是因为在代码中实例化 UIButton/UIBarButtonItem 是很正常的,所以很多教程包括在同一个类中实现选择器引用。

例如,您可以创建一个类,当在您的 View Controller 中实例化时,该类旨在仅处理这些按钮调用操作:

#import <UIKit/UIKit.h>
#import "OtherObject.h"

@interface SomeViewController : UIViewController

@property (strong, nonatomic) OtherObject *other;

@end

@implementation SomeViewController

@synthesize other;

- (void)viewDidLoad
{
[super viewDidLoad];

UIButton *someButton = [[UIButton alloc] initWithFrame:CGRectZero];
[someButton addTarget:other action:@selector(someMethodInOther) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:someButton];

UIButton *anotherButton = [[UIButton alloc] initWithFrame:CGRectZero];
[anotherButton addTarget:other action:@selector(anotherMethodInOther) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:anotherButton];
}

@end

IBAction 让您告诉 Interface Builder 方法实现可以通过您的 xib/storyboard 连接。

关于iphone - 什么时候按钮(UIButton)的目标不是 "self"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11389936/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com