2012-11-06 2 views
0

누가 세그먼트 화 된 컨트롤이 이벤트를 트리거했는지 확인하는 방법을 알고 있습니까? 분할 된 컨트롤을 포함하는 두 개의 셀을 생성합니다. segmentedControlIndexChanged 메서드에서 어떤 세분화 된 컨트롤이 이벤트를 트리거했는지 알고 싶습니다. 태그를 사용했는데 작동하지 않습니다. 나는 이것으로 새롭다. 도와 주셔서 감사합니다. 분할 제어를 포함하는 세포에 대한두 개의 분할 된 컨트롤을 구분하는 방법은 무엇입니까?

코드 :

cellParinti = [[Cell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"]; 
cellParinti.textLabel.text = @"Parinti"; 
cellParinti.label.text = dog?dog.parinti:@""; 
cellParinti.segmentedControl.selectedSegmentIndex = [dog.parinti isEqualToString:@"da"] ? 0 : 1; 
cellParinti.segmentedControl.tag = 1; 
[cellParinti.segmentedControl addTarget:self action:@selector(segmentedControlIndexChanged:) forControlEvents:UIControlEventValueChanged]; 
[cellParinti addSubview:cellParinti.textLabel]; 
[cellParinti addSubview:cellParinti.label]; 
[cellParinti addSubview:cellParinti.segmentedControl]; 


cellPedigree = [[Cell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"]; 
cellPedigree.textLabel.text = @"Pedigree"; 
cellPedigree.label.text = dog?dog.pedigree:@""; 
cellParinti.segmentedControl.tag = 2; 
cellPedigree.segmentedControl.selectedSegmentIndex = [dog.pedigree isEqualToString:@"da"] ? 0 : 1; 
[cellPedigree.segmentedControl addTarget:self action:@selector(segmentedControlIndexChanged:) forControlEvents:UIControlEventValueChanged]; 

[cellPedigree addSubview:cellPedigree.textLabel]; 
[cellPedigree addSubview:cellPedigree.label]; 
[cellPedigree addSubview:cellPedigree.segmentedControl]; 

트리거 된 방법에 대한 코드 :

-(void) segmentedControlIndexChanged:(id)sender{ 
NSIndexPath *indexPath; 

UISegmentedControl * sg1 = (UISegmentedControl *)sender; 

// reload data based on the new index 
if (sg1.tag == 1){ 
cellParinti.label.text = sg1.selectedSegmentIndex == 0 ? @"da" : @"nu"; 
dog.parinti = sg1.selectedSegmentIndex == 0 ? @"da" : @"nu"; 
} 
else { 
    cellPedigree.label.text = sg1.selectedSegmentIndex == 0 ? @"da" : @"nu"; 
    dog.pedigree = sg1.selectedSegmentIndex == 0 ? @"da" : @"nu"; 
} 

}

답변

1

당신은

cellParinti.segmentedControl.tag = 2; 

이게 있어야한다고 생각합니다.

cellPedigree.segmentedControl.tag = 2; 

올바른 태그를 얻지 못하게하는 것이 코드의 오타입니다.

+0

감사합니다. :) 당신은 남자입니다! – alin

+0

대답을 수락 할 수 있으므로 답이없는 다른 곳에서는 나타나지 않습니다. – Srikanth

관련 문제