2016-01-26 90 views
0

當用戶點擊我的UITableView中的單元格時,我想將sectionSelected變量設置爲該單元格各個部分的indexPath.section,然後將該變量發送到segue中的下一個視圖控制器。如何將變量設置爲所選單元格的indexPath.section?

這裏是我目前如何嘗試此:

MatchCenterViewController.h:

@property (assign, nonatomic) NSInteger *sectionSelected; 

MatchCenterViewController.m:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    //Set _sectionSelected variable to the section index 
    self.sectionSelected = indexPath.section; 

[self performSegueWithIdentifier:@"MCExpandedSegue" sender:self]; 
} 

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([segue.identifier isEqualToString:@"MCExpandedSegue"]){ 
     MCExpandedViewController *controller = (MCExpandedViewController *) segue.destinationViewController; 
     controller.sectionSelected = self.sectionSelected; 
    } 
} 

這不工作,看來這是因爲我得到了以下警告設置self.sectionSelectedIncompatible integer to pointer conversion assigning to 'NSInteger *' (aka 'long *') from 'NSInteger' (aka 'long')

如何正確設置變量?

+0

NSInteger的是值類型,你不需要'*','@財產(轉讓,非原子)NSInteger的sectionSelected;' – michaels

+0

重複的非常接近這個問題,答案也提到了'NSInteger's。 – dasblinkenlight

+0

我不確定你的控制器上的sectionSelected的類型是什麼,但有一個更簡單的方法來做到這一點。如果你的tableView已經啓用了選擇,你可以使用tableView屬性 indexPathForSelectedRow。 NSIndex路徑包含Int值而非NSInteger值。如果您確實需要該部分,則存儲NSNumber值甚至會更好。而且,分配的任何變量通常不是指針,並且是原始值。將您的屬性從指針更改爲非指針。 – TheCodingArt

回答

3

變化

@property (assign, nonatomic) NSInteger *sectionSelected; 

@property (assign, nonatomic) NSInteger sectionSelected; 
相關問題