Objective-C iPhone-将iAction从一个类委托给另一个类?这能做到吗?

Objective-C iPhone-将iAction从一个类委托给另一个类?这能做到吗?,iphone,objective-c,delegates,ipod-touch,ibaction,Iphone,Objective C,Delegates,Ipod Touch,Ibaction,我创建了一个类,可以很容易地输入特定价格的金额,就像ATM机允许您输入金额一样,用户不需要输入小数 这是一个名为(AmountPicker)的泛型类,因此可以在许多其他类中使用它。我通过调用presentModalViewController方法来使用它,这个类使用一个nib文件。在xib内部,有一个隐藏的文本字段和一个标签,以及导航栏中的“完成”按钮。“完成”按钮是一个iAction,连接到名为doneButtonPressed的方法 我想知道是否可以将该方法委托给另一个类,以便该方法中的逻辑

我创建了一个类,可以很容易地输入特定价格的金额,就像ATM机允许您输入金额一样,用户不需要输入小数

这是一个名为(AmountPicker)的泛型类,因此可以在许多其他类中使用它。我通过调用presentModalViewController方法来使用它,这个类使用一个nib文件。在xib内部,有一个隐藏的文本字段和一个标签,以及导航栏中的“完成”按钮。“完成”按钮是一个iAction,连接到名为doneButtonPressed的方法

我想知道是否可以将该方法委托给另一个类,以便该方法中的逻辑可以不同于amountPicker类中已经定义的逻辑

原因是,我在两个地方使用amountPicker类,一个用于输入购买,它接受标签文本并将值分配给appDelegate中的一个变量,当我在一个类中使用它时,这是可以的,但是现在有一个购买的detailTableViewController,该视图还需要提供一种方法来更改数据,以防输入错误

因此,在详细视图中,我使用了一个自定义标题,自定义标题有一个用于购买名称的文本字段,一个用于激活AmountPicker的按钮,以及一个用于金额的标签,当按下amount按钮时,AmountPicker类弹出,用户输入金额并按下done按钮,现在,在这里,我需要更改doneButton的逻辑,而不是在appDelegate中使用变量

我认为DetailTableViewController可以充当amountPicker类的委托,并重写doneButtonPressed方法,以便使用新的数量更新amountLabel


这是否可能,如果不可能的话,正确的方法是什么?

您的想法是正确的,授权通常是如何使用的。我要做的是创建一个Objective-C协议,也许是一个数量选择器delegate。然后,在AmountPicker的界面中,您将看到:

@interface AmountPicker : NSObject {
    NSString *someValue;
    ...
    id <AmountPickerDelegate> delegate;
}

@property (assign) id <AmountPickerDelegate> delegate;

@end
它将在委托中执行

@interface DetailTableViewController : UITableViewController <AmountPickerDelegate>
[delegate amountPickerDidPressDoneButton];