Iphone 如何传递要由委托类使用的UIscrollview

Iphone 如何传递要由委托类使用的UIscrollview,iphone,objective-c,ios,xcode,Iphone,Objective C,Ios,Xcode,我对委托并不陌生,但我对在自己的类中创建委托的语法是陌生的 本质上,我有一个在自己的类中创建的PickerView委托。我希望能够将选择文本放入已在我的ViewController中声明的UIScrollView中的文本框中。但是,我不知道向代理显示视图的语法。下面是代理的.h和.m文件。如果有任何其他缺少的组件,我需要让我的ViewController看到我没有的代理,也请让我知道。错误在didSelectRow方法中 RadioPickerDelegate.h #import <Fo

我对委托并不陌生,但我对在自己的类中创建委托的语法是陌生的

本质上,我有一个在自己的类中创建的PickerView委托。我希望能够将选择文本放入已在我的ViewController中声明的UIScrollView中的文本框中。但是,我不知道向代理显示视图的语法。下面是代理的.h和.m文件。如果有任何其他缺少的组件,我需要让我的ViewController看到我没有的代理,也请让我知道。错误在didSelectRow方法中

RadioPickerDelegate.h

 #import <Foundation/Foundation.h>
 @class MissionInputViewController;


 @interface RadioPickerDelegate : NSObject<UITextFieldDelegate>{
   NSArray *radioOptions;
 }
 @property (nonatomic, retain) NSArray *radioOptions;


 @end
基本上,我想在我的ViewController中创建一个PickerView,并让它使用这个委托。然后,此委托必须在我的ViewController中更新UIScrollView中的文本字段。我需要以某种方式让该委托查看/使用UIScrollView(inputsView)


谢谢

我确信错误来自
inputsView
,它没有在任何地方声明

您的界面显示它符合
UITextFieldDelegate
,而不是再次编辑的


您的视图控制器类
这里,您将文本字段(比如textFiledSV)的引用传递给radio picker类

//set the delegate where you have created the object of RadioPickerDelegate class
radioPickerDelegateObject.textField = yourTextField;

RadioPickerDelegate.h文件

#import <Foundation/Foundation.h>
@class MissionInputViewController;


@interface RadioPickerDelegate : NSObject<UIPickerViewDelegate>{
    NSArray *radioOptions;
    //Text Field so that we can set it's value
    UITextField *textField;
}
@property (nonatomic, retain) NSArray *radioOptions;
@property (nonatomic, assign) UITextField *textField;

@end

您在哪里定义了
inputsView
??我没有。这显然是个问题。我不知道怎么做。如果我只是创建一个名为inputsView.的UIScrollView变量。。这将与我想要使用的视图不同。您在哪里定义了
UIScrollView
,您在哪里创建了
RadioPickerDelegate
classUIScrollView的对象在我的视图控制器中定义。我会在那里创建RadioPickerDelegate的对象以供使用。我只是还没有,因为我还没有解决这个问题。我甚至不能100%确定这个委托是否语法正确或设置是否正确。我发布的两个类文件被认为是一个PickerView委托。我需要接口来实现它吗?是的,通过添加,您告诉类的用户它符合该协议,并且可以被视为该类型。但这并不能修复您的错误,因为类中的任何地方都没有定义inputsView。我理解。正如我在OP中所说的,我不确定我的ReopopeReCuffer-class文件首先是正确设置的。那么这个问题与委托无关,但是基础Objtovi-C(或大多数语言)——你不能引用变量,<代码>输入/视图> /代码>。在文件中,除非先在某个地方声明了。它已声明。inputsView已在我的ViewController中声明。我需要让我的delegate类看到/使用这个变量,这样我才能更新一个textfield。。我的理解是,我需要创建一个UIPickerView,其中包含一个类来处理其委托方法。这个类应该是RadioPickerDelegate。将radioPickerDelegateObject的委托设置为其自身做什么?这是为了传递绳子吗?是的,你很困惑。。。您不需要创建单独的类来处理UIPickerView委托。。您可以将其委托设置为MissionInputViewController类并处理其所有委托方法是的,我知道。通常情况下,你可以。但是,我有大约3种不同类型的UIPickerViews需要在同一屏幕上。每种类型都必须以不同的方式处理,并且每种类型都可以有多个。因此,我认为这三种类型中的每一种都有单独的代理是最好的。这看起来仍然不能解决问题。这将我的UIScrollView中textfield的值(应该为空)设置为委托中textfield变量的值。应该是相反的。delegate方法didSelectRow现在应该在UIScrollView.step中设置textfield的值。。1.设置
radioPickerDelegateObject.textField=yourTextField
2。现在用户选择行。3.在didSelectRow中设置
textField.text=[radioOptions objectAtIndex:row]现在,此文本字段就是您从控制器传递的文本字段。。
#import <Foundation/Foundation.h>
@class MissionInputViewController;


@interface RadioPickerDelegate : NSObject<UIPickerViewDelegate>{
    NSArray *radioOptions;
    //Text Field so that we can set it's value
    UITextField *textField;
}
@property (nonatomic, retain) NSArray *radioOptions;
@property (nonatomic, assign) UITextField *textField;

@end
#import "RadioPickerDelegate.h"
#import "MissionInputViewController.h"

@implementation RadioPickerDelegate

@synthesize radioOptions;
@synthesize textField;

- (void)pickerView:(UIPickerView *)pickerView didSelectRow: (NSInteger)row inComponent:(NSInteger)component{
   //here you are setting the text of the text field which was passed priviously (textFiledSV) thus it changes the text of the textField of you UIScrollView
   textField.text = [radioOptions objectAtIndex:row];  
}

//other method definitions

@end