如何使用UIPickerView更改按钮的操作

时间:2013-07-13 20:55:07

标签: ios uibutton uipickerview

我正在尝试更改按钮所在的位置,具体取决于选择器视图的选定行。我试图根据某一年显示数据,我可以让选择器显示可用的年份并将标签更改为相应的年份,但我怎样才能使" go"按钮I;已创建导致正确的视图控制器?

1 个答案:

答案 0 :(得分:0)

也许你没有时间想出这个,也许你有,但这就是我要做的。您有一个文本字段,您将使用选择器填充,将其称为“yearTextField”。然后,您有一个按钮,您希望根据相关年份更改操作。称之为“myChangableButton”。这只是一个例子,您可以随意调用它们。我将我的初始视图控制器放在导航视图控制器中,以便更好地控制视图。在这个例子中,我做了两个不同的年份1942年和1971年。他们每个都有自己的视图控制器,我在我的第一个视图控制器中命名为“FourtyTwoViewController”和“SeventyOneViewController”,你需要将它们导入到.m文件中。像这样......

#import "ViewController.h"
#import "FourtyTwoViewController.h"
#import "SeventyOneViewController.h"

此外,请确保在故事板中拖出新视图控制器时,将其命名为。并且不要忘记使用该名称作为在Identity检查器下找到的Storyboard ID。现在对于myChangableButton,我做了一个动作,根据yearTextField中的文本提出你想要的任何一个视图控制器。

- (IBAction)myChangableButton:(id)sender
{
    if ([_yearTextField.text isEqual: @"1942"])
    {
        FourtyTwoViewController *ftvc = [self.storyboard instantiateViewControllerWithIdentifier:@"FourtyTwoViewController"];
        //[self presentViewController:ftvc animated:YES completion:nil];
        [self.navigationController pushViewController:ftvc animated:YES];
    }
    else if ([_yearTextField.text isEqual: @"1971"])
    {
        SeventyOneViewController *sovc = [self.storyboard instantiateViewControllerWithIdentifier:@"SeventyOneViewController"];
        //[self presentViewController:sovc animated:YES completion:nil];
        [self.navigationController pushViewController:sovc animated:YES];
    }
    else
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Watch Out!" message:@"Put in valid date" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
        [alert show];
    }
}

我注释掉的代码行会带来一个模态转换,但我更喜欢推送,因为它会给你一个很好的后退按钮。而已。我希望这对你的项目有所帮助。如果您有任何问题,请发表评论并祝您好运。欢迎!到了!! !!

编辑#1

以下是我如何在我推送的viewcontroller中设置initialUrl的示例。

VideoViewController *vvc = [self.storyboard instantiateViewControllerWithIdentifier:@"VideoViewController"];
vvc.initialUrlString = urlString;
vvc.descriptionString = descriptionString1;
[self.navigationController pushViewController:vvc animated:YES];

我将VideoViewController导入第一个视图控制器。 VideoViewController有两个名为initialUrlString和descriptionString的属性。在第一个视图控制器中,我有两个名为urlString和descriptionString1的属性,这些属性在另一个方法中在第一个视图控制器中设置,然后传递给第二个。