2016-10-25 21 views
0

こんにちは私はコレクションビュー内のUIsegmentコントロールのイベントをトリガーしようとしています。UIセグメント化されたコントロールがコレクションビュー内で機能しない

ここは私のコードです。

CollectionViewCell.h 

@property (strong, nonatomic) IBOutlet UISegmentedControl *mySegmentedControl; 

ViewController.m 
{ 
NSInteger selectedSegment; 
} 

- (UIView *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{ 
cell.mySegmentedControl.tag = indexPath.row; 
selectedSegment = cell.mySegmentedControl.selectedSegmentIndex; 
[cell.mySegmentedControl addTarget:self action:@selector(segmentValueChanged:) forControlEvents:UIControlEventValueChanged]; 
} 

- (void) segmentValueChanged: (UISwitch *) sender { 
//NSInteger index = sender.tag; 
if(selectedSegment == 0) 
{ 
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"!Alert" 
               message:@"Do you think this property is not exists?" 
               delegate:self 
             cancelButtonTitle:@"Cancel" 
             otherButtonTitles:@"Yes", nil]; 
[alert show]; 

}   
else 
{ 
    //your code 
} 
} 

上記のコードは私のためには機能しません。何か助けていただければ幸いです。 cellForItemAtIndexPath:: `

+0

好きですUISwitchではありません。 'segmentValueChanged:'の 'selectedSegmentIndex'をローカル変数に読み込む必要があります。 – clemens

+0

@Raj - 中にブレークポイントを設定しようとしましたか - (void)segmentValueChanged:(UISwitch *)送信者。セグメント化されたコントロールをタップしたときにのみ呼び出されます。 – kaushal

答えて

0

はそれがUISegmentedControlは` collectionViewの完全なコードを投稿してください

- (void) segmentValueChanged: (UISegmentedControl *) sender { 
//NSInteger index = sender.tag; 
if(sender.selectedSegmentIndex == 0) 
{ 
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"!Alert" 
               message:@"Do you think this property is not exists?" 
               delegate:self 
             cancelButtonTitle:@"Cancel" 
             otherButtonTitles:@"Yes", nil]; 
[alert show]; 

}   
else 
{ 
    //your code 
} 
} 
+2

UIAlertControllerを使用すると、UIALertViewは非推奨になります –

関連する問題