Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何将PickerView委托从一个控制器更改为另一个控制器?_Objective C_Ios_Uipickerview_Uiapplicationdelegate - Fatal编程技术网

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

Objective c 如何将PickerView委托从一个控制器更改为另一个控制器?,objective-c,ios,uipickerview,uiapplicationdelegate,Objective C,Ios,Uipickerview,Uiapplicationdelegate,通过故事板,我构建了一个带有“添加”按钮的ViewController1。单击“添加显示POP概览”(在ViewController2中),其中只有一个选择器 所以我的PickerView的委托在ViewController 2中,但我希望它在ViewController 1中。。。 有没有一个简单的方法可以做到这一点 谢谢在您的ViewController1.h文件中,将您的界面标题更改为此 @interface ViewController1 : UIViewController <U

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

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


谢谢

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

@interface ViewController1 : UIViewController <UIPickerViewDelegate, UIPickerViewDataSource>;

在ViewController1 prepareForSegue方法中,尝试以下操作:

if ([segue.identifier isEqualToString:@"MySegue"])
{
    ViewController2* vc2 = segue.destinationViewController;
    vc2.pickerView.delegate = self;
}
它基本上是在调用segue之前将pickerview的委托分配给ViewController1


这当然是假设您的pickerview设置为属性。

这如何帮助我在ViewController 1中拥有委托?这样,我将在ViewController 2中而不是ViewController 1中拥有委托,不是吗?更新:我只是想让我的代表在ViewC1中而不是ViewC2中阅读我的编辑,否则请告诉我更多关于错误和您所做的事情的信息。放一些代码:)我要试试,几分钟后回来不工作。。。在ViewController1.h中:
@界面ViewController:UIViewController
在ViewController1.m中:`-(NSInteger)组件编号SinPickerView:(UIPickerView*)pickerView{return 1;}-(NSInteger)pickerView:(UIPickerView*)pickerView编号RowsInComponent:(NSInteger)组件{return([categoryName count])-1;}-(NSString*)pickerView:(UIPickerView*)pickerView titleForRow:(NSInteger)组件行:(NSInteger)组件{return[categoryName objectAtIndex:row];}`在ViewController2.h:
@interface PopOverViewController:UIViewController{
``中在ViewController2.m:
-(void)viewDidLoad
{
ViewController*vc;
[categoryPicker setDelegate:vc];
[super viewDidLoad];
]
谢谢您的帮助。问题已解决。我在哪里可以将此主题标记为已解决?我是新来的:只需单击解决问题答案旁边的复选标记=)
if ([segue.identifier isEqualToString:@"MySegue"])
{
    ViewController2* vc2 = segue.destinationViewController;
    vc2.pickerView.delegate = self;
}