-2

特別なpopOverを作成するにはどうすればよいですか?必要なデザインで新しいクラスを手動で作成しました。

ここに画像の説明を入力してください

それから私はそれをポップオーバーのようにロードしたい

ここに画像の説明を入力してください

-(void) buttonAction {
UIViewController* popoverContent = [[UIViewController alloc] init];

myThirdPop * showHere;//Created class which I load as Popover
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"myThirdPop" owner:self options:nil];
showHere = [nib objectAtIndex:0];
popoverContent.view = showHere.myView;
popoverContent.contentSizeForViewInPopover = CGSizeMake(300, 350);
popoverController = [[UIPopoverController alloc] initWithContentViewController:popoverContent];
[popoverController presentPopoverFromRect:myButton.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

}

しかし、ボタンをタップしようとすると、exc_bad_accessでアプリがクラッシュします。何が問題なのですか。

4

3 に答える 3

2
Use this code to create the popover

 -(IBAction)Click_event
{      UIPopoverController *popoverview;
if(![popoverview isPopoverVisible])
     {
  Popview *pop = [[Popview alloc] initWithNibName:@"Popview" bundle:nil];
  popoverview = [[UIPopoverController alloc] initWithContentViewController:pop];
  [popoverview setPopoverContentSize:CGSizeMake(600.0f, 500.0f)];
   [popoverview presentPopoverFromRect:CGRectMake(400, 400, 0, 0)   inView:self.Click_but  permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
 }
else
 {
  [popoverview dismissPopoverAnimated:YES];
 }
  }

  Lets try this. It may be helpful for you  
于 2012-08-30T12:42:15.697 に答える
2

この方法で試してください。問題が解決する可能性があります。

PopimagepickerViewController.h

            UIPopoverController *popoverController;


          UIPopoverController *popoverimagview;  // imagepicker popoverview

PopimagepickerViewController.m

 -(IBAction)popbtn_Click:(id)sender

{{

UIViewController* popoverContent = [[UIViewController alloc] init];
UIView* popoverView = [[UIView alloc] initWithFrame:CGRectMake(0, 0,230,180)];
popoverView.backgroundColor = [UIColor whiteColor];

popoverContent.view = popoverView; popoverContent.contentSizeForViewInPopover = CGSizeMake(230、180); //ポップオーバービューの幅と高さを設定します

//create a popover controller
popoverController = [[UIPopoverController alloc] initWithContentViewController:popoverContent];
CGRect popoverRect = [self.view convertRect:[popbtn frame]
                                   fromView:[popbtn superview]];
popoverRect.size.width = MIN(popoverRect.size.width, 100) ;
popoverRect.origin.x  = popoverRect.origin.x;
[popoverController
 presentPopoverFromRect:popoverRect
 inView:self.view
 permittedArrowDirections:UIPopoverArrowDirectionUp + 
 UIPopoverArrowDirectionLeft           //pooverview down direction
 animated:YES]; 


[popoverView release];
[popoverContent release];

}

于 2012-08-30T13:13:00.020 に答える
0

コードは非常に複雑で、標準的ではないようです。このコードを使用してポップオーバーを作成します。

(私はあなたのケースに合うようにこれを編集しましたが、テストされていません)

-(void) buttonAction:(id) sender
{
    UIViewController *myThirdPop = [[NSBundle mainBundle] loadNibNamed:@"myThirdPop" owner:self options:nil];

    UIPopoverController *popoverController = [[UIPopoverController alloc] initWithContentViewController:myThirdPop];

   [popoverController presentPopoverFromRect:[sender bounds] inView:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

   [myThirdPop release];
}
于 2012-08-30T12:45:01.453 に答える