iOS UiPickerView(-Helper) 应发送消息

标签 ios delegates uipickerview

我正在尝试做的事情:

我有一个ViewController:

@implementation ViewController
@synthesize myPicker;
@synthesize myPickerHelper;
@synthesize label;

#pragma mark - View lifecycle

- (void)viewDidLoad
{
    [super viewDidLoad];
    myPickerHelper = [[UIPickerViewHelper alloc]initWithUIPickerView:myPicker   andNumberOfComponents:4];

    [myPickerHelper.valuesForComponent1 addObject:@"TEST1"];
    [myPickerHelper.valuesForComponent1 addObject:@"TEST2"];
    ;

    [weightsPicker reloadAllComponents];
    [weightsPicker selectRow:0 inComponent:0 animated:YES];
    //TODO receive message from picker helper.
  //label.text = ... set a listner (like that one in java) or what else
    }

}

我有一个PickerViewHelper:(处理委托(delegate)和数据源问题)

@interface UIPickerViewHelper : NSObject <UIPickerViewDelegate, UIPickerViewDataSource, OnPickerViewChangeDelegate>

@implementation UIPickerViewHelper 
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
  //TODO send message to controller view.
}

协议(protocol):

@protocol OnPickerViewChangeDelegate
@optional
-(void)onChange:(NSString*)result;
@end

我想要的是在我的 UiPickerViewHelper 类中使用协议(protocol)方法“onChange”,以便我的标签(在我的 ViewController 中)得到通知。 我知道如何在 Java 中解决这个问题,但我不知道如何在 Objective C 中解决这个问题。

问候

最佳答案

UIPickerViewHelper.h

@property (nonatomic, assign) id <OnPickerViewChangeDelegate> delegate

UIPickerViewHelper.m

@synthesize delegate;

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    //TODO send message to controller view.
    [self.delegate onChange:[NSString stringWithFormat:@"Selected row %d", row]];
}

ViewController.m

- (void)viewDidLoad
{
    [super viewDidLoad];
    myPickerHelper = [[UIPickerViewHelper alloc]initWithUIPickerView:myPicker   andNumberOfComponents:4];
    myPickerHelper.delegate = self;

    ...
}

-(void)onChange:(NSString*)result {

    NSLog(@"Here is the result: %@", result);
    label.text = result;
}

关于iOS UiPickerView(-Helper) 应发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15068554/

相关文章:

ios - 如何更改 UIPickerView 的背景颜色?

ios - 我如何转储 `VM: Mapped File` ?

ios - inputAccessoryView 现在是只读的?

iOS WebView 空白间隙

swift - 更改 TableView 数据源时按钮不起作用?

ios - 如何在 UIPickerView 中添加部分标题?

ios - 从另一个类中的 UITextField 访问文本

ios - 如何在 ViewController 中获取委托(delegate)方法以查看 *recorder 何时完成(不同的类)

Objective-C – 委托(delegate)被释放?

ios - "UIPickerView"中的多列