问题描述:

I want to display the contents of a double picker to a label without hitting a button in the process. Can anyone show me how this is accomplished.

I displaying calculations to a label and I want them to change as the user moves the picker.

网友答案:

You need to set up a UIPickerViewDelegate, set it as the delegate of your picker, and implement – pickerView:didSelectRow:inComponent: to modify your label how you want. The UIPickerViewDelegate protocol reference is here. I would probably just set the viewController for the containing view as the delegate, but it depends on how your program is structured.

EDIT - example code added:

You declare a class as implementing a delegate protocol with <> notation as in the following:

@interface MyViewController : UIViewController<UIPickerViewDelegate>

Then you can set the delegate of your picker view instance like so:

myPicker.delegate = myViewControllerInstance;

Or, if your picker is an ivar of the viewcontroller class:

myPicker.delegate = self;

Then, inside the implementation of your MyViewController class you can optionally implement the methods of the UIPickerViewDelegate protocol, and the corresponding messages will be sent at the right time. eg, -pickerView:didSelectRow:inComponent: (if implemented in your delegate) will be called whenever the picker selects a value, and it will be passed the row selected and the component the row was selected in.

相关阅读:
Top