2

我是一个新手,试图将从视图控制器1中的表中选择的行号传递给第二个视图控制器。在两个表视图控制器之间传递数字对象:IOS

我试图用这个属性声明为VC1数量,做到了:

@property (nonatomic, retain) NSNumber *passedSectorNumber; 

它,然后在VC1 @synthesized并与VC1的didSelectRowAtIndexPath方法相应的行数设置这样的:

self.passedSectorNumber = [NSNumber numberWithInt:[indexPath row]]; 
     VC2 *vc2 = [[SectorEditor alloc] initWithNibName:@"vc2nibname" bundle:nil]; 
     [self.navigationController pushViewController:vc2 animated:YES]; 
     [vc2 release]; 

在VC2中,我还定义了一个名称相同的NSNumber属性,并对其进行了合并。

在VC2也:

@property (nonatomic, retain) NSNumber *passedSectorNumber; 

I测试在VC 2传递的值从而:

NSInteger intvalue = [self.passedSectorNumber integerValue]; 
    NSLog(@"The value of the integer is: %i", intvalue); 

数在VC2 “接收到的” 总是 '0',而不管是哪个的行是选择。

我正在发生菜鸟错误。任何想法在哪里?非常感谢输入。

+2

在'didSelectRowAtIndexPath'你需要做:'vc2.passedSectorNumber = [NSNumber numberWithInt:indexPath.row];'在alloc-init'vc2'后。为此,您需要在VC2中声明属性'passedSectorNumber'。你不需要在VC1中声明一个属性'passedSectorNumber'。 – albertamg 2012-01-06 12:56:59

+0

你有'vc2.passedSectorNumber = self.passedSectorNumber'? – 2012-01-06 13:02:12

+0

>> albertamg,谢谢,那非常好。非常感激。 – 2012-01-06 13:47:34

回答

0

假设你的第二个VC被称为SectorEditor:

self.passedSectorNumber = [NSNumber numberWithInt:[indexPath row]]; 
VC2 *vc2 = [[SectorEditor alloc] initWithNibName:@"vc2nibname" bundle:nil]; 
[self.navigationController pushViewController:vc2 animated:YES]; 
[vc2 release]; 

应该是这样的:

VC2 *vc2 = [[SectorEditor alloc] initWithNibName:@"vc2nibname" bundle:nil]; 
vc2.passedSectorNumber = [NSNumber numberWithInt:[indexPath row]]; 
[self.navigationController pushViewController:vc2 animated:YES]; 
[vc2 release]; 

甚至更​​好,声明一个类的方法在你的第二个VC叫initWithPassedNumber和内部的调用initWithNibName是这样的:

- initWithPassedSectorNumber:(NSInteger)sectorNumber 
{ 
    if ((self = [super initWithNibName:@"vc2nibname" bundle:nil])) { 
     self.passedSectorNumber = sectorNumber 
    } 
} 

然后调用这个是这样的:

VC2 *vc2 = [[SectorEditor alloc] initWithPassedSectorNumber:indexPath.row bundle:nil]; 
[self.navigationController pushViewController:vc2 animated:YES]; 
[vc2 release]; 

未测试任何代码,但这将是接近你所需要的。

相关问题