[iOS SDK] QuickDialog を使ってみた

公開日: : 最終更新日:2013/09/09 iPad, iPhone

[IOS] iOS オープンソースライブラリ徹底活用 菊田剛著 秀和システム | DevCafeJp で紹介されていた、QuickDialog – ESCOZ Inc を利用してみた。

これを利用すると設定画面作成作業がかなり楽になるのでとても助かる。
ドキュメントはあまりないので、サンプルプログラムを動かしてみて理解していくのが良さそう。
QuickDialog は ARC をサポートしている。

まだ検索してみてもあまりサンプルコードが見つからないので、参考までに今回使ったコードを切り出してみた。
これはTableViewから1つを選択するタイプのダイアログ。

Quick1使い方がこれで正しいかは不明だが、動いてはいる。

QRootElement* root = [[QRootElement alloc] init];
root.grouped = YES;
root.title = NSLocalizedString(@"Separate String", @"Separate String");

QSelectSection *simpleSelectSection =
[[QSelectSection alloc] initWithItems:nameArray selectedIndexes:nil title:NSLocalizedString(@"Select a separate string", @"Select a separate string")];
simpleSelectSection.onSelected = ^{
NSNumber *selected = [simpleSelectSection.selectedIndexes objectAtIndex:0];
};
[root addSection:simpleSelectSection];

QSection *btnSection = [[QSection alloc]initWithTitle:nil];
[root addSection:btnSection];

QButtonElement *okBtn = [[QButtonElement alloc]initWithTitle:@"OK"];
okBtn.onSelected = ^{
[self dismissViewControllerAnimated:YES completion:^{
[self.tableView reloadData];
}];
};
[btnSection addElement:okBtn];

QuickDialogController *qc = [[QuickDialogController alloc]initWithRoot:root];
[self presentViewController:qc animated:YES completion:^{
//
}];

こちらはラベルを複数表示するタイプのダイアログ。

Quick2

QRootElement* root = [[QRootElement alloc] init];
root.grouped = YES;
root.title = nil;

QSection* detailsSection = [[QSection alloc] initWithTitle:NSLocalizedString(@"About", @"About")];
[root addSection:detailsSection];

NSString *str1 = NSLocalizedString(@"Support Site", @"Supoprt Site");
NSString *str2 = NSLocalizedString(@"Twitter", @"Twitter");

QLabelElement *label1 = [[QLabelElement alloc]initWithTitle:str1 Value:nil];
label1.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
label1.onSelected = ^{
NSString *str = NSLocalizedString(@"https://tokentoken.com/blog/support-e/", @"SupportSiteURL");

NSURL *target = [[NSURL alloc] initWithString:str];
[[UIApplication sharedApplication] openURL:target];
};

[detailsSection addElement:label1];

QLabelElement *label2 = [[QLabelElement alloc]initWithTitle:str2 Value:nil];
label2.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
label2.onSelected = ^{
NSString *str = NSLocalizedString(@"http://www.twitter.com/onpuchan_app/", @"TwitterURL");

NSURL *target = [[NSURL alloc] initWithString:str];
[[UIApplication sharedApplication] openURL:target];
};
[detailsSection addElement:label2];

QSection *btnSection = [[QSection alloc]initWithTitle:nil];
[root addSection:btnSection];

QButtonElement *okBtn = [[QButtonElement alloc]initWithTitle:@"OK"];
okBtn.onSelected = ^{
[self dismissViewControllerAnimated:YES completion:^{
//
}];
};
[btnSection addElement:okBtn];

QuickDialogController *qc = [[QuickDialogController alloc]initWithRoot:root];
[self presentViewController:qc animated:YES completion:^{
//
}];

iOS は便利なライブラリがどんどん出てくるので作りたいものに集中できるのはありがたいこと。

追記 2013/09/09

QuickDialog には、QuickDialog内部で使っている便利クラスが存在する。
例えばその中の QWebViewController はリロードボタンや戻る・進むボタンが用意されたViewControllerで、url を渡すだけでWebページを表示してくれる。
ちょっとWebを表示したいだけなので手をかけずに実現したい、という時には便利そう。

    QWebViewController *webC = [[QWebViewController alloc]initWithUrl:url];
    [self.navigationController pushViewController:webC animated:YES];
    [webC release];

関連記事

Roland 電子ドラム TD-4KP 落札

(2016年2月の記事)ドラム譜学習アプリを作るためには自分も叩けないと困るだろう、ということでMI

記事を読む

no image

Corona SDK 調査6日目

なかなか Corona SDK自体の調査まで進めないCorona SDK調査6日目。 平日はさすがに

記事を読む

Xcode6 を使うために強制的に Mavericks にアップグレードさせられたら重い

Mavericks の不具合をさけるためにわざわざ Mountain Lion (10.

記事を読む

2020年大晦日

毎年年末は家族で旅行に出かけていたが、今年はコロナウィルスの影響もあり自宅で静かに過ごすこ

記事を読む

[iOS8] BlocksKit で不具合発生

iOS8 にアップデートしたところ、BlocksKit の UIAlertView と UI

記事を読む

no image

Application tried to present a nil modal view controller on target 問題

MFMailComposeViewController を使ってメール送信ダイアログを表示しようとし

記事を読む

no image

Kickstarter で iPhone/Android で使える腕時計 Pebble に出資してみた

Kickstarter で28時間で100万ドルを調達したという Pebble E-Pape

記事を読む

[iOS SDK] 実装ファイルでメンバ変数を宣言する

Xcode 4.x を導入したらいろいろ見慣れない記法があったので、いまさらながら一部まとめてみた。

記事を読む

no image

AirMac Extreme Base Station がほしい 2011/05/07

自宅の無線LANルータが不安定なので、AirMac Extremeを買おうかと悩み中。 自宅にApp

記事を読む

[購入報告] ELECOM BluetoothオーディオレシーバLBT-ACR02HF

今乗っているHONDA Freed にはHDD付きカーナビが搭載されていて、CDからリッピングしたデ

記事を読む

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Anker PowerExpand 13-in-1 USB-C ドッキングステーション を買ってみた

[itemlink post_id="11594"]

コードちゃん 1.2.1 をリリースしました

3年以上アップデートしていなかった、コードちゃん をアップデ

ポモドーロタイマーMinee3を試してみた

以前、ポモドーロテクニック用タイマーと言えばTimeTime

github RSA SSH host key 変更2023年3月

久しぶりに github にSSH接続しようとしたところ、WARNI

Apple Developer Program更新 2024

今年も更新した。 昨年はブログに記録し忘れたらしい。 今

→もっと見る

  • 2013年2月
     123
    45678910
    11121314151617
    18192021222324
    25262728  
PAGE TOP ↑