2013-03-04 1 views
1

J'ai créé une vue d'image et c'est l'assigner à l'imagebout qui est montrée dans le code ci-dessous.Une fois que je clique sur l'image elle devrait obtenir popover mais elle ne fonctionne pas. pour utiliser UIPopOverView il ne fonctionne pas.Comment créer pour bouton popovercontroller.Comment faire popoverview l'image sur l'image cliquez sur le bouton

- (IBAction)showPopover:(UIButton *)sender 
{ 
if(![popoverController isPopoverVisible]){ 
    myPopOver = [[PopViewController alloc] initWithNibName:@"PopViewController" bundle:nil]; 
    popoverController = [[[UIPopoverController alloc] initWithContentViewController:myPopOver] retain]; 

    [popoverController setPopoverContentSize:CGSizeMake(299.0f,111.0f)]; 
    [popoverController presentPopoverFromRect:CGRectMake(10, 10, 200, 200) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 
} 
else{ 
    [popoverController dismissPopoverAnimated:YES]; 
    } 
} 


- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
imageView=[[UIImageView alloc] initWithFrame:CGRectMake(10, 10,100, 100)]; 
imageView.image=[UIImage imageNamed:@"Dosa.jpg"];  
CGRect textViewFrame = CGRectMake(10, 10, 300, 400); 
textView = [[UITextView alloc] initWithFrame:textViewFrame]; 
textView.returnKeyType = UIReturnKeyDone; 
textView.text = @"\n\n\n\n\n\n\n\nDOSA\nDosa, a common breakfast dish and street food, is rich in carbohydrates, and contains no sugar or saturated fats. "; 
textView.backgroundColor=[UIColor whiteColor]; 
textView.editable=NO; 
textView.delegate = self; 
[self.view addSubview:textView];   
[textView addSubview:imageView];   
textView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"Indian.jpg"]]; 
textView.alpha = 0.9; 
textView.font = [UIFont systemFontOfSize:15]; 
imageView.userInteractionEnabled = YES; 
imageButton = [[UIButton alloc]init]; 
[imageButton setFrame:CGRectMake(0, 0, 100, 100)]; 
[imageButton addTarget:self action:@selector(showPopover:) forControlEvents:UIControlEventTouchUpInside]; 
[imageView addSubview:imageButton]; 
[imageButton release]; 
[imageView release]; 
[textView release]; 
if(mrowno==0) 
{ 
    imageView.image=[UIImage imageNamed:@"Dosa.jpg"]; 
    textView.text = @"\n\n\n\n\n\n\n\nDOSA\nDosa, a common breakfast dish and street food, is rich in carbohydrates, and contains no sugar or saturated fats. "; 


} 
} 
+0

taille de votre popover est (200200), mais [in_sender.superview setFrame: CGRectMake (0, 0, 300, 500)]; – NANNAV

+0

vous devez accéder au délégué popover myPopOver.delegate = self; – Ravindhiran

Répondre

0

Essayez ceci,

popViewController.h

@protocol popViewControllerDelegate 
@end 
@interface PopViewController : UIViewController 
{ 
    id <popViewControllerDelegate> delegate; 
} 
@property (nonatomic,retain) id <popViewControllerDelegate> delegate; 
@end 

popViewController.m

@synthesize delegate; 

viewcontroller.h

popViewController.h 
@interface viewController : UIViewController<popViewControllerDelegate> 
{ 

} 

viewcontroller.m

- (IBAction)showPopover:(UIButton *)sender 
{ 
UIButton *btn = (UIButton *)sender; 
if(![popoverController isPopoverVisible]){ 

myPopOver = [[PopViewController alloc] initWithNibName:@"PopViewController" bundle:nil]; 
myPopOver.delegate=self; 
popoverController = [[[UIPopoverController alloc] initWithContentViewController:myPopOver] retain]; 

[popoverController setPopoverContentSize:CGSizeMake(299.0f,111.0f)]; 
[popoverController presentPopoverFromRect:btn.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 
}} 
+0

Je n'ai pas créé popViewControllerDelegate comment puis-je déclarer dans popViewController.h. Et je l'ai fait montrer l'erreur comme ne peut pas trouver la déclatation de protocole popViewControllerDelegate. – lreddy

Questions connexes