2014-12-24 5 views
-3

행을 선택하면 선택한 행의 "세부 정보"로 연결되는 UITableView이 있습니다. 그러나 행을 처음 클릭하면 prepareForSegue 메서드로 들어가고 didSelectRowAtIndexPath 메서드는 호출되지 않습니다. 자세히보기에서 뒤로 버튼을 누르면 응용 프로그램이 돌아가고 행을 다시 선택하면 메서드가 호출됩니다.didSelectRowAtIndexPath가 처음으로 호출되지 않았습니다.

저는 didDeselectRowAtIndexPath을 사용하여 이 아닌입니다.

이 글은 계속 될 것이며 이유를 알 수 없습니다. 데이터를로드 할 때 [tableview reloadData]으로 전화합니다.

또한 self.TagsTableView.allowsMultipleSelection = YES;을 내 viewDidLoad 방법에 추가하려고했습니다. 나는 didSelectRowAtIndexPath의 코드를 넣어 것

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.bluetoothManager = [[BlueToothLEManager alloc] init]; 

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reloadTableView:) name:@"ScanComplete" object:nil]; 


    self.Tags = self.bluetoothManager.Tags; 
    NSLog(@"Fetch Tags: %@", self.Tags); 
} 
... 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    UITableViewCell* cell = [fetchTagsTableView dequeueReusableCellWithIdentifier:@"tagCell"]; 

    if(cell == nil){ 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"tagCell"]; 
    } 

    FetchTag* newTag = [fetchTags objectAtIndex:indexPath.row]; 

    cell.textLabel.text = [NSString stringWithFormat:@"%@ %d", newTag.tagName, indexPath.row]; 
    cell.detailTextLabel.text = [newTag.tagUUID UUIDString]; 

    return cell; 
} 

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    selectedTagFromTable = [fetchTags objectAtIndex:indexPath.row]; 
    [TagsTableView deselectRowAtIndexPath:indexPath animated:YES]; 
} 
... 
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    // Get the new view controller using [segue destinationViewController]. 
    if([[segue identifier] isEqualToString:@"DetailView"]){ 
     TagDetailViewController* ftdvc = [segue destinationViewController]; 
     [ftdvc setSelectedTag:selectedTagFromTable]; 


    } 
    // Pass the selected object to the new view controller. 
} 

-(void)reloadTableView:(NSNotification*)notif{ 
    NSLog(@"Reloading Table View"); 
    NSLog(@"Fetch Tags: %@", self.Tags); 
    [self.TagsTableView reloadData]; 
} 
+1

를 식별하기 위해 보낸 매개 변수를 사용하십시오 스토리 보드에서 선택한 항목을 자동으로 탐색하고 'didSelectRowAtIndexPath'를 호출합니까? 나는 그것을 신뢰할 것이라고 확신하지 못한다. 나는 자동 segue를 지우고 segue를 수동으로 호출하는 것 (또는 수동으로 탐색하는 것)을 제안한다. _in_'didSelectRowAtIndexPath'. – matt

+0

그리고 맞춤형 셀을 사용하고 있습니까? 코드의 다른 부분 인 "fetchTagsTableView"셀 (예 : UITableViewCell * cell = [fetchTagsTableView dequeueReusableCellWithIdentifier : @ "tagCell"];)을 미리 채우고 있습니까? –

+0

관련 자료 : http://stackoverflow.com/q/18165684/335858 – dasblinkenlight

답변

0

: 다음 prepareForSegue에 : 여기

내 코드 대신 그래서 당신이 사용하는 기대 선택된 태그를

관련 문제