IPhone SDK - 使用动画在视图之间传递变量

时间:2009-12-02 03:19:51

标签: iphone variables sdk views

嗨,我是IPhoneSDK的新手,请耐心等待。

我基本上要做的是我有一个带10个按钮的视图,分别命名为“一个”到“十个”。我想要发生的是,当我点击一个按钮(例如:'9')时,它将转到另一个视图,带有动画,然后在下一个视图上,有一个标签将显示对应于哪个按钮的文本我之前点击过。 (例如:我按下'九'按钮,在下一页上,标签会说'九')

如果不是很麻烦,我们将非常感谢你的每一个概念都是如此。

我基本上拥有自己的代码,但肯定会让人感到困惑和错误。

从概念上讲,到目前为止我尝试和学习的是:

1。)我尝试使用addSubviews动画和切换视图,插入子视图,setAnimations等。我设法切换视图,但我不知道如何传递数据。

2.)我学习了pushViewControllers。从我看到的教程中,我练习了一个分层表。我了解到只有UIViewControllers和UITableViewControllers是唯一可以推送的。我知道如果它在表格中如何应用它但我不知道如何在视图中应用它(因为我的应用程序按钮随机分散在屏幕上)

如果你能给我一个关于我正在尝试做的事情的粗略样本,即使至少对于一步一步的概念,我将非常感激,并将感谢你的一生。几个星期以来,我一直在研究这个问题。并没有一个真正的人向我解释它是很困难的。

请谢谢你,先生/妈妈

3 个答案:

答案 0 :(得分:1)

尝试使用标签。为每个按钮(1到10)添加标签,单击按钮时,获取发件人的标签。从这里你可以知道点击了哪个按钮。请注意,只有在对所有按钮单击使用相同的方法时才需要这样做。

在要显示的下一个viewcontroller中,创建一个NSString类型的属性(比如clickedButton)并在.m文件中合成它。

根据点击的按钮获取变量中的文本后,创建一个要显示的viewcontroller的新对象(我想你已经这样做了)并设置了这个viewcontroller对象的属性 clickedButton

NewViewController *nController = [[NewViewController alloc] initWithNibName:@"NewView"];
[nController setClickedButton:yourStringVariableWithButtonName];
[[self navigationController] pushViewController:nController animated:YES];

在NewViewController中,将标签的文本设置为clickedButton

[yourLabel setText:clickedButton];

希望有所帮助。

答案 1 :(得分:0)

现在好了!我完全理解viewcontrollers和导航控制器的概念!

但有一个问题。我有这个代码,我打算在我的按钮中分配。我只是不知道如何从每个按钮获取标签,所以我可以使用它:

- (IBAction)loadZodiac:(NSInteger)tag {

NSString *zodiac;

switch (tag) {
    case 1:
        zodiac = @"Aries";
        break;
    case 2:
        zodiac = @"Taurus";
        break;
    case 3:
        zodiac = @"Gemini";
        break;
    case 4:
        zodiac = @"Cancer";
        break;
    case 5:
        zodiac = @"Leo";
        break;
    case 6:
        zodiac = @"Virgo";
        break;
    case 7:
        zodiac = @"Libra";
        break;
    case 8:
        zodiac = @"Scorpio";
        break;
    case 9:
        zodiac = @"Sagittarius";
        break;
    case 10:
        zodiac = @"Capricorn";
        break;
    case 11:
        zodiac = @"Aquarius";
        break;
    case 12:
        zodiac = @"Pisces";
        break;
    default:
        zodiac = @"None Selected";
        break;
}
lovescopesReading = [[LovescopesReading alloc] initWithNibName:@"LovescopesReading" bundle:nil];
lovescopesReading.title = zodiac;
lovescopesReading.message = zodiac;

Lovescopes6AppDelegate *delegate = [[UIApplication sharedApplication] delegate];
[delegate.navController pushViewController:lovescopesReading animated:YES];

}

答案 2 :(得分:0)

NSString *zodiac;

for (UIButton *button in [self.view subviews]) {
    switch (button.tag) {
        case 1:
                zodiac = @"Aries";
                break;
        case 2:
                zodiac = @"Taurus";
                break;
        ....
        }

}