我正在尝试根据选择器视图的选定行更改按钮指向的位置。我正在尝试根据某一年显示数据,我可以让选择器显示可用年份并将标签更改为相应的年份,但是我怎样才能使我创建的“开始”按钮导致正确的视图控制器?
1 回答
也许你还没有时间弄清楚,也许你有,但这就是我要做的。您有一个将使用选择器填充的文本字段,称之为“yearTextField”。然后你有一个按钮,你想根据所讨论的年份更改操作。将此称为“myChangeableButton”。这只是一个示例,您可以随意称呼它们。我将初始视图控制器放在导航视图控制器中,以便更好地控制视图。对于这个例子,我做了两个不同的年份 1942 和 1971。它们都有自己的视图控制器,我在我的第一个视图控制器中命名为“FourtyTwoViewController”和“SeventyOneViewController”,您需要将它们导入到 .m 文件中。像这样..
#import "ViewController.h"
#import "FourtyTwoViewController.h"
#import "SeventyOneViewController.h"
此外,请确保在故事板中拖出新的视图控制器时,将它们命名为这样。并且不要忘记使用该名称作为 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
这是我如何在我推送的视图控制器中设置 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 的属性,它们在另一个方法期间在第一个视图控制器中设置,然后传递给第二个。