0

Привет Я пытаюсь вызвать события для управления UIsegment внутри представления коллекции.UIsegmented control не работает внутри коллекции view

вот мой код.

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 
} 
} 

Приведенный выше код не работает для меня. Любая помощь будет оценена по достоинству.

+0

Пожалуйста, пост полный код для 'CollectionView: cellForItemAtIndexPath:'. Вы должны прочитать 'selectedSegmentIndex' в' segmentValueChanged: 'в локальной переменной. – clemens

+0

@Raj - вы пытались установить параметр останова внутри - (void) segmentValueChanged: (UISwitch *) отправитель. Он будет вызываться только тогда, когда вы задействуете сегментированный элемент управления. – kaushal

ответ

0

не UISwitch это UISegmentedControl сделать как

- (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 устарел –

Смежные вопросы