Objective c 如何将PickerView委托从一个控制器更改为另一个控制器?
通过故事板,我构建了一个带有“添加”按钮的ViewController1。单击“添加显示POP概览”(在ViewController2中),其中只有一个选择器 所以我的PickerView的委托在ViewController 2中,但我希望它在ViewController 1中。。。 有没有一个简单的方法可以做到这一点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.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;
}