数据在ViewControllers之间传递并重置?

时间:2015-01-01 00:57:31

标签: ios objective-c iphone

我只是试图在NSInteger之间传递UIViewController,由于某种原因,数据不断重置。重置的意思是我做的如下:

- (void)pickerView:(AKPickerView *)pickerView didSelectItem:(NSInteger)item
{
    PlayViewController *playScreen = [[PlayViewController alloc] init];
    playScreen.playerNumber = item;
    NSLog(@"%d", playScreen.playerNumber);  
}

然后NSLog会打印出所选对象的索引,但是一旦我转到PlayViewController并执行以下switch语句:

switch (self.playerNumber){
        case 0:
            theView.playerComment.text = @"You, again";
            playerScores[0]++;
            break;

        case 1:
            if (numberPressed % 2){
                theView.playerComment.text = @"Player 2's Turn";
                playerScores[0]++;
            }
            else {
                theView.playerComment.text = @"Player 1's Turn";
                playerScores[1]++;
            }
            break;
 and so on.... the code would always receive 0 as the value of playerNumber...

此外,在PlayViewController.h中,变量播放器编号声明为:

@property (nonatomic) NSInteger playerNumber;

1 个答案:

答案 0 :(得分:0)

创建PlayViewController的媒体资源并修改您的pickerView didSelectItem:代表。

@property (nonatomic, strong) PlayViewController *playScreen;

- (void)pickerView:(AKPickerView *)pickerView didSelectItem:(NSInteger)item
{
    if (nil == self.playScreen)
    {
       self.playScreen = [[PlayViewController alloc] init];
    }

    playScreen.playerNumber = item;
    NSLog(@"%d", playScreen.playerNumber);  
}