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



通过故事板,我构建了一个带有"添加"按钮的ViewController1。单击添加显示一个弹出视图(在 ViewController2 中(,其中只有一个选择器。

所以我的 PickerView 的委托在 ViewController 2 中,但我希望它在 ViewController1 中......有没有简单的方法可以做到这一点?

谢谢

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

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

它基本上是在调用 segue 之前将选取器视图的委托分配给 ViewController1。

当然,这是假设您的选取器视图设置为属性。

在 ViewController1.h 文件中,将接口标头更改为 this;

@interface ViewController1 : UIViewController <UIPickerViewDelegate, UIPickerViewDataSource>;

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

[yourPickerview setDelegate:ViewController1];

最新更新