1

.h ファイル内

@interface MenuViewController : UIViewController<UIAlertViewDelegate>

.m ファイルで

@interface TACDIYMenuViewController ()

@end

@implementation TACDIYMenuViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
}

- (void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{
    return 1;
}

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
    return [self.imageViews count];
}

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
    CGSize size = CGSizeMake(200, 100);
    return size;
}

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
    MenuViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"MenuViewCellIdentifier" forIndexPath:indexPath];
    if ([indexPath row] < [self.imageViews count]) {
        cell.thumbnails.image = [self.imageViews objectAtIndex:[indexPath row]];
    } else {
        cell.thumbnails.image = [UIImage imageNamed:@"addMark.png"];
    }

    return cell;
}

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
    [self doSomething];
}

- (void)doSomething{
    UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"Warning"
                                                    message:@"Are you sure"
                                                   delegate:self
                                          cancelButtonTitle:@"NO"
                                          otherButtonTitles:@"YES",nil];
    [alert show];
}

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
    if(buttonIndex == 0){
        NSLog(@"0");
    } else {
        NSLog(@"1");
    }
}

@end

ただし、clickedButtonAtIndex は呼び出されません。
ちなみに、MenuViewController のビューは別のクラスのサブビューであり、このクラスにも UIAlertView と clickedButtonAtIndex メソッドがあります。しかし、それはうまくいきます。

4

3 に答える 3

1

交換

@interface MenuViewController : UIViewController<UIAlertViewDelegate>

@interface TACDIYMenuViewController : UIViewController<UIAlertViewDelegate>

その後、動作するはずです。

于 2013-04-25T12:27:18.253 に答える
-4

[alert show] の前にこの行を追加してください。alert.delegate = 自己;

于 2013-04-25T11:47:43.907 に答える