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]; 

未測試任何代碼,但這將是接近你所需要的。

相關問題