如何将PickerView委托从一个控制器更改为另一个控制器?

时间:2012-05-05 21:23:06

标签: objective-c ios uipickerview uiapplicationdelegate

通过故事板,我构建了一个带有“添加”按钮的ViewController1。单击添加显示PopoverView(在ViewController2中),其中只有一个Picker。

所以我的PickerView的委托是在ViewController 2中,但我想在ViewController1中... 有这么简单的方法吗?

由于

2 个答案:

答案 0 :(得分:1)

在ViewController1 prepareForSegue方法中,试试这个:

if ([segue.identifier isEqualToString:@"MySegue"])
{
    ViewController2* vc2 = segue.destinationViewController;
    vc2.pickerView.delegate = self;
}

在segue完成调用之前,它基本上将pickerview的委托分配给ViewController1。

这当然是假设您的选择视图已设置为属性。

答案 1 :(得分:0)

在ViewController1.h文件中,将您的界面标题更改为此内容;

@interface ViewController1 : UIViewController <UIPickerViewDelegate, UIPickerViewDataSource>;

这使得ViewController1负责委托。然后在ViewController1.m文件中添加所需的方法。另外,使用以下命令将UIPickerView的委托设置为ViewController1的实例:

[yourPickerview setDelegate:ViewController1];