在.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方法。但是效果很好。
最佳答案
更换
@interface MenuViewController : UIViewController<UIAlertViewDelegate>
用
@interface TACDIYMenuViewController : UIViewController<UIAlertViewDelegate>
然后它应该工作。
关于ios - 不调用UIAlertView clickedButtonAtIndex方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16213854/