FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Popoverを表示する その2[Xcode]

iPadでPopoverを表示する方法の続きです。
今回はPopoverにタイトルを表示する方法をご紹介します。

Popoverのタイトルを表示するには、前回ご紹介した親クラス、
PopoverViewControllerクラスの btn1Pressed:メソッド内に
UINavigationControllerを用いた記述をします。

PopoverViewController.m

// ↓こちらはコメントアウトする
// 3. PopOverのインスタンスを作成
// popController = [[UIPopoverController alloc] initWithContentViewController:innerVC];

// 3B. タイトル表示付きのPopOverのインスタンスを作成 UINavigationControllerを挟む
UINavigationController* navigatinVC
= [[UINavigationController alloc] initWithRootViewController:innerVC];
popController = [[UIPopoverController alloc] initWithContentViewController:navigatinVC];
[[UIBarButtonItem appearance] setTintColor:[UIColor blueColor]];


上記の変更後に実行してみると、Popover上部にタイトル欄が表示されました。
しかし、タイトル文字は何もありません。
そこでタイトル文字を、子クラスである InnerViewControllerクラスの initメソッド内に記述します。



InnerViewController.m
       // タイトル設定
self.title = @"PopoverTitle";


1行追加するだけですね。
これで無事、タイトル文字も表示されるようになりました。



変更点を踏まえて、2つのクラスを再掲します。
まずはPopover内の表示を行う InnerViewControllerクラスです。

InnerViewController.h

#import

@interface InnerViewController : UIViewController

@end


InnerViewController.m

#import "InnerViewController.h"

@interface InnerViewController ()
@end

@implementation InnerViewController

- (id)init
{
self = [super init];

// viewの設定
if (self) {
// サイズの設定
self.view.frame = CGRectMake(0,0, 320, 400);

// タイトル設定
self.title = @"PopoverTitle";

// 背景の設定
self.view.backgroundColor = [UIColor whiteColor];

// labelを置く
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(40,50, 300,50)];
label.font =[UIFont systemFontOfSize:50];
label.text = @"Popover !!";
[self.view addSubview:label];
}

return self;
}

@end


そしてそれを呼び出すメイン側の PopoverViewControllerクラスです。

PopoverViewController.h

#import
#import "InnerViewController.h"

@interface PopoverViewController : UIViewController

@end


PopoverViewController.m

#import "PopoverViewController.h"

@interface PopoverViewController () {
UIPopoverController *popController;
}

@end

@implementation PopoverViewController

- (void)viewDidLoad
{
[super viewDidLoad];

// 1.Popoverを表示させるための buttonを設定
UIButton *btn1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btn1 setFrame:CGRectMake(300,50, 120,50)];
[btn1 setTitle:@"BUTTON" forState:UIControlStateNormal];
[btn1 addTarget:self action:@selector(btn1Pressed:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn1];
}

//===========================================================
// Popover表示
//===========================================================
- (void)btn1Pressed:(id)sender
{
// Popoverを作成
if (! popController) {
// 2. innerVCを定義
InnerViewController *innerVC = [[InnerViewController alloc] init];

// ↓こちらはコメントアウトする
// 3. PopOverのインスタンスを作成
// popController = [[UIPopoverController alloc] initWithContentViewController:innerVC];

// 3B. タイトル表示付きのPopOverのインスタンスを作成 UINavigationControllerを挟む
UINavigationController* navigatinVC
= [[UINavigationController alloc] initWithRootViewController:innerVC];
popController = [[UIPopoverController alloc] initWithContentViewController:navigatinVC];
[[UIBarButtonItem appearance] setTintColor:[UIColor blueColor]];

// 4. Popoverのインスタンスを作成
popController = [[UIPopoverController alloc] initWithContentViewController:innerVC];
}

// 5.Popoverを表示する
[popController presentPopoverFromRect:CGRectMake(300,50, 120,50) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}

@end
関連記事

コメントの投稿

非公開コメント

Appご紹介
K app designのAppをご紹介します

ねこわけ

画面中央の猫を次々に仕分けるゲームです。

あまり計算機

あまりを計算できる割算専用の計算機です。

6オクターブ ピアノ

6オクターブ鍵盤のピアノアプリです。iPad専用。

Dynamic Drum

様々な演奏法が楽しめるドラム演奏アプリです。

クイズボタン

早押しクイズのサポートをするアプリです。

クイズボタン Pro

クイズボタンに点数表示機能が付きました。

クイズボタン HD

クイズボタンのiPad専用版。回答者ボタンが8つに増量。

ベロシティ ピアノ

タップの強弱で音量が変わるピアノアプリです。

TIMERx4

4つのキッチンタイマーを同時に動作できるアプリです。

アナデジClock

アナログとデジタルが融合した時計です。
検索フォーム
最新記事
最新コメント
カテゴリ
人気ページ
月別アーカイブ
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。