我只是试图在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;
答案 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);
}