将更改的int值传递给其他视图控制器

时间:2014-02-13 22:10:42

标签: xcode uiviewcontroller

我是Xcode中的新手,我当然遇到了一个问题,我们大多数人都这样做。我正在尝试为IPhone创建类似“测验”的游戏,以提高我的“技能”。我现在面临的一个问题是,我的第一个视图控制器有一个名为currentPoint的变量,因为玩家每次尝试猜测测验时都会收到“警报视图”。但是我已经完成了正确答案的增量(意思是; currentPoint ++),因此“警报视图”显示了实际的当前点。这是我的问题所在:

当第二个问题得到解答并且我们到达下一个视图控制器时,我的currentPoint变量再次变为0。无论你在整个测验中有多少次正确回答,你都会以0分结束。如何将以前的currentPoint变量传输到下一个视图控制器?

在Java中,您可以通过执行以下操作来使用上一个类:

previousClass a = new previousClass;

a.currentPoint ++;

因此,前一个currentPoint(假设它是3)现在已经有一个增量,因此它将高一个(即4)。我如何在Xcode中做到这一点(请注意我是初学者)。

我希望我的问题能被理解,我希望你们能以适合我的方式回答我,因为我是初学者(例如告诉我是否应该添加.h或者。 m文件等。)

我已经长时间环顾四周寻找这个问题了,但我不明白答案,因为他们的情况不是100%像我的情况,而且我是初学者。如果这看起来或者是 - 就像本网站上的另一个问题,我感到非常抱歉。

1 个答案:

答案 0 :(得分:1)

您必须使用Segue在View Controllers之间传递值。您必须使用以下方法:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"SegueIdentifier"]) {

        NextViewController *nextController = segue.destinationViewController;
        // add code to pass values to variables of nextController 
        nextController.scoreVariable = self.score;
    }
}

您可以参考此处了解详情:http://www.appcoda.com/storyboards-ios-tutorial-pass-data-between-view-controller-with-segue/

编辑 - 如果您在下一个视图控制器中定义了scoreVariable并且在当前视图控制器中定义了score,则可以使用上面的代码。