iPadのpopover2010/08/17 20:25

iPadのアプリ開発での覚え書きです。popoverの表示と、popover内のボタンから自分を閉じるという機能です。

//
//  popoverTestViewController.h
//  popoverTest
//
//  Created by tn on 10/08/17.
//  Copyright __IRLAB__ 2010. All rights reserved.
//

#import 
#import "popoverViewController.h"

@interface popoverTestViewController : UIViewController {
	//IBOutlet UIBarButtonItem* popButton;
}

@property(nonatomic, retain) UIPopoverController *popoverController;
@property(nonatomic, retain) popoverViewController *popoverView;

-(IBAction)showPopover:(id)sender;
-(void)Done;

@end

//
//  popoverTestViewController.m
//  popoverTest
//
//  Created by tn on 10/08/17.
//  Copyright __IRLAB__ 2010. All rights reserved.
//

#import "popoverTestViewController.h"

@implementation popoverTestViewController

@synthesize popoverController;
@synthesize popoverView;

- (IBAction)showPopover:(id)sender
{
	self.popoverView = [[popoverViewController alloc] 
						initWithNibName:@"popoverViewController" 
						bundle:nil ];
	popoverView.delegate = self;
	self.popoverView.contentSizeForViewInPopover = CGSizeMake(300, 400);	
	self.popoverController = [[UIPopoverController alloc] 
							  initWithContentViewController:popoverView];
	
	[self.popoverController presentPopoverFromBarButtonItem:sender
								   permittedArrowDirections:UIPopoverArrowDirectionUp
												   animated:YES];	
}

-(void)Done
{
	[self.popoverController dismissPopoverAnimated:YES];
}

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

@end

//
//  popoverViewController.h
//  popoverTest
//
//  Created by tn on 10/08/17.
//  Copyright 2010 __IRLAB__. All rights reserved.
//

#import 

@protocol popoverViewDelegate
	-(void)Done;
@end

@interface popoverViewController : UIViewController {
	id delegate;	
}

@property (nonatomic, assign) id delegate;
-(IBAction)donePressed;
@end

//
//  popoverViewController.m
//  popoverTest
//
//  Created by tn on 10/08/17.
//  Copyright 2010 __IRLAB__. All rights reserved.
//

#import "popoverViewController.h"


@implementation popoverViewController

@synthesize delegate;

-(IBAction)donePressed
{
	if (delegate != nil) {
		[delegate Done];
	}else{
		
	}
}

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

@end

iPadアプリRejectされる2010/08/20 22:33

アップルに申請していたiPadアプリがrejectされました。popoverが2つ同時に表示されてはいけないようです。テストは割とやったつもりだったのですが、自分がつくったソフトでのいじわるテストは難しいですね。

『We have reviewed your iPad application, but cannot post this version to the App Store because we found more than one popover element visible onscreen at a time.』