Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.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
Ios 不同的选择器视图,但输出相同_Ios_Xcode_View_Picker - Fatal编程技术网

Ios 不同的选择器视图,但输出相同

Ios 不同的选择器视图,但输出相同,ios,xcode,view,picker,Ios,Xcode,View,Picker,我在我的故事板上有两个选择视图,每件事都是单独完成的。然而,出于某种原因,我的第二个查看器正是在复制第一个查看器 #import <UIKit/UIKit.h> @interface MaisOuiViewController : UIViewController <UITextFieldDelegate, UIPickerViewDataSource, UIPickerViewDelegate> @property (strong, nonatomic) IBOut

我在我的故事板上有两个选择视图,每件事都是单独完成的。然而,出于某种原因,我的第二个查看器正是在复制第一个查看器

#import <UIKit/UIKit.h>

@interface MaisOuiViewController : UIViewController <UITextFieldDelegate, UIPickerViewDataSource, UIPickerViewDelegate>

@property (strong, nonatomic) IBOutlet UIPickerView *from;
@property (strong, nonatomic) IBOutlet UIPickerView *to;

@property (strong, nonatomic) NSArray * fromlang;
@property (strong,nonatomic) NSArray * tolang;

@end
有人能指出我哪里出错了吗


谢谢

因为委托和数据源方法相同,所以
UIPickerViews
from
to
看起来是一样的
iOS
将根据苹果iOS文档仅调用下面提到的方法


-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
    {
        return 1;
    }

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    return _fromlang.count;
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    return [_fromlang objectAtIndex:row];
}

您可以将
的标记设置为
并使用下面提到的代码




- (void)viewDidLoad
{


    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    self.inWord.delegate = self;

    //Set tags to differentiate
    from.tag=1;
    to.tag=2;

    //Load  NSArray fromlang
    _fromlang= [[NSArray alloc] initWithObjects:@"English",@"Spanish",@"German", nil];

    //Load  NSArray tolang
    _tolang= [[NSArray alloc] initWithObjects:@"Hindi",@"Chinese",@"Check", nil];

}
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
    {   
        if(pickerView.tag==1)
       {
        return 1;
       }
       else
       {
      return 1;
        }
    }

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{

 if(pickerView.tag==1)
       {
         return _fromlang.count;
       }
       else
       {
         return _tolang.count;
       }
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{

 if(pickerView.tag==1)
       {
         return [_fromlang objectAtIndex:row];
       }
       else
       {
         return [_tolang objectAtIndex:row];
       }
}

希望这会有所帮助。

如果您有两个按钮来显示,则取一个整数变量并设置一些值,或取BOOL值以产生差异,或设置选择器的标记,然后根据您的条件在选择器视图中调用数组

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{


NSString *titleString;
if (currentSelectedDropDown == 1) {
    AIFillAccountTypeParserModel *modal = [[AIFillAccountTypeParserModel alloc]init];
    if (isSearching) {
        modal = [filteredArray objectAtIndex:row];
    }else{
        modal = [accountTypesPickerArray objectAtIndex:row];
    }
    titleString = modal.accountType;
    accountTypeTxtField.text = titleString;
}
else if(currentSelectedDropDown == 2) {
    AIFillRatingParserModel *modal = [[AIFillRatingParserModel alloc]init];
    if (isSearching) {
        modal = [filteredArray objectAtIndex:row];
    }else{
        modal = [accountTypesPickerArray objectAtIndex:row];
    }
    titleString = modal.rating_Description;
    ratingTxtField.text = titleString;
}
}

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    if (currentSelectedDropDown == 1) {
      AIFillAccountTypeParserModel *modal = nil;

    if (isSearching) {
        modal = [filteredArray objectAtIndex:row];
    }
    else{
        modal = [accountTypesPickerArray objectAtIndex:row];
    }
    NSString *titleString = modal.accountType;
    accountTypeTxtField.text = titleString;
    accountTypeId = modal.accountId;

    NSUserDefaults *accountType = [NSUserDefaults standardUserDefaults];
    [accountType setObject:modal.accountId forKey:@"SavedaccountType"];
}
else if (currentSelectedDropDown == 2) {

    AIFillOwnershipParserModel *modal = nil;

    if (isSearching) {
        modal = [filteredArray objectAtIndex:row];
    }
    else{
        modal =[accountTypesPickerArray objectAtIndex:row];
    }

    NSString *titleString = modal.ownership;
    ownershipTypeTxtField.text = titleString;
    ownerShipId = modal.ownerShipID;
}
}

这只是一个让你理解的例子

simple在pickercan上分配标签你可以解释一下你的意思请对PickerWithHanks做一些研究,它起作用了。小更正:需要从此处删除返回值:-(NSString*)pickerView:(UIPickerView*)pickerView titleForRow:(NSInteger)row for component:(NSInteger)component{return[\u fromlang objectAtIndex:row];
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{


NSString *titleString;
if (currentSelectedDropDown == 1) {
    AIFillAccountTypeParserModel *modal = [[AIFillAccountTypeParserModel alloc]init];
    if (isSearching) {
        modal = [filteredArray objectAtIndex:row];
    }else{
        modal = [accountTypesPickerArray objectAtIndex:row];
    }
    titleString = modal.accountType;
    accountTypeTxtField.text = titleString;
}
else if(currentSelectedDropDown == 2) {
    AIFillRatingParserModel *modal = [[AIFillRatingParserModel alloc]init];
    if (isSearching) {
        modal = [filteredArray objectAtIndex:row];
    }else{
        modal = [accountTypesPickerArray objectAtIndex:row];
    }
    titleString = modal.rating_Description;
    ratingTxtField.text = titleString;
}
}

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    if (currentSelectedDropDown == 1) {
      AIFillAccountTypeParserModel *modal = nil;

    if (isSearching) {
        modal = [filteredArray objectAtIndex:row];
    }
    else{
        modal = [accountTypesPickerArray objectAtIndex:row];
    }
    NSString *titleString = modal.accountType;
    accountTypeTxtField.text = titleString;
    accountTypeId = modal.accountId;

    NSUserDefaults *accountType = [NSUserDefaults standardUserDefaults];
    [accountType setObject:modal.accountId forKey:@"SavedaccountType"];
}
else if (currentSelectedDropDown == 2) {

    AIFillOwnershipParserModel *modal = nil;

    if (isSearching) {
        modal = [filteredArray objectAtIndex:row];
    }
    else{
        modal =[accountTypesPickerArray objectAtIndex:row];
    }

    NSString *titleString = modal.ownership;
    ownershipTypeTxtField.text = titleString;
    ownerShipId = modal.ownerShipID;
}
}