如何在选择UIPickerPicker视图时打开众多View控制器中的一个

时间:2012-05-10 18:16:32

标签: iphone ios5 uipickerview

我正在使用故事板在IOS5中创建一个应用程序。我创建了一个UiPickerView,当选择一个选项时,我想打开其中一个UIViewControllers。我只想让用户选择他想要使用的视图控制器。如何连接多个视图控制器。

由于 Prerna

2 个答案:

答案 0 :(得分:1)

请使用以下代表和数据源作为您的选择器视图

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {

        if(button_Number == 1)
        {
            UILabel *label =[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 280, 30)];

            NSString *nameStr=[arr_countryName objectAtIndex:row];
            // NSString *nameStr=[programNameArr objectForKey:@"programname"];
            label.text = nameStr;
            label.font = [UIFont boldSystemFontOfSize:14.0f];
            label.textAlignment = UITextAlignmentLeft;
            label.backgroundColor = [UIColor clearColor];
            [label autorelease];
            return label;
        }
        if (button_Number == 2)
        {
            UILabel *label =[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 280, 30)];

            NSString *nameStr=[arr_currencyCode objectAtIndex:row];
            // NSString *nameStr=[programNameArr objectForKey:@"programname"];
            label.text = nameStr;
            label.font = [UIFont boldSystemFontOfSize:18.0f];
            label.textAlignment = UITextAlignmentLeft;
            label.backgroundColor = [UIColor clearColor];
            [label autorelease];
            return label;
        }
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
        //return (NSString*)[clientListArray objectAtIndex:row];

        if(button_Number == 1)
        {
            return (NSString*)[arr_countryName objectAtIndex:row];
        }
        if (button_Number == 2)
        {
            return (NSString*)[arr_currencyCode objectAtIndex:row];
        }
}
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
        return 1;
}
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{

        if(button_Number == 1)
        {
            return [arr_countryName count];
        }
        if (button_Number == 2)
        {
            return [arr_currencyCode count];
        }
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{

        selectedScrollIndex = row;

        // clientNameTxtFld.text = [clientListArray objectAtIndex:row];

        // LBL.text = [clientListArray objectAtIndex:row];
}
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex 
    {
        if(buttonIndex == 0)
        {

        }

        if (buttonIndex == 1 && button_Number == 1)
        {
            countryTxtFld.text = [arr_countryName objectAtIndex:selectedScrollIndex];
            //selected_Client_ID = [clientIDArray objectAtIndex:selectedScrollIndex]; 

            selectedScrollIndex = 0;
        }

        if (buttonIndex == 1 && button_Number == 2)
        {
            currencyTxtFld.text = [arr_currencyCode objectAtIndex:selectedScrollIndex];
            //selected_Client_ID = [clientIDArray objectAtIndex:selectedScrollIndex]; 

            selectedScrollIndex = 0;
        }
}

答案 1 :(得分:0)

为.h文件中的所有视图控制器创建实例,并根据UIPickerView中的row-touch-title数组序列为所有视图控制器设置tag值。 完成此操作后,继承UIPickerViewDelegate并实现所需的委托方法。

- (void)pickerView:(UIPickerView *)pickerView didSelectRow: (NSInteger)row 
 inComponent:(NSInteger)component {
    // Handle the selection    
    switch (row) {
        case 0:
            [self presentModalViewController:viewController1 animated:YES];
            break;
        case 1:
            [self presentModalViewController:viewController2 animated:YES];
            break;
        case 2:
            [self presentModalViewController:viewController3 animated:YES];
            break;
    }
}