[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];

関連記事

WatchKitのAVSpeechSynthesizerで音が鳴らない

自作英単語学習アプリ EverLearn には watchOS用アプリがあり、iOS側でまちがった

記事を読む

PebbleKit iOS SDK dynamic framework 問題

最近 EverLearn の Pebble アプリがiOSアプリと接続できずエラーが表示されるので、

記事を読む

no image

[iOS] iOS6 から起動時に一度 Portraitになる挙動が変更された模様

iOS6 からは画面の回転関係の仕様が整理されたのか、いろいろと変更が入っている。 まず - (B

記事を読む

no image

初代 iPad mini 16GB ブラックスレート注文

予約は10/26(金)16:00 きっかりに開始され、iPad mini 16GB ブラックスレート

記事を読む

iPad Air 2 OpenAL再生でプチノイズ発生(更新あり)

新アプリが動き始めたので、TestFlightを利用してベータテストを行っている。自分のiPad2や

記事を読む

no image

自作アプリを売り買いできる Apptopia

Apptopia というところからメールが来たので調べてみたところ、どうやらAndroid

記事を読む

no image

Corona SDK本が出るらしい 「Corona SDK」ハンドブック2011

値段的に一般人向けではないけれども、Corona SDK 本が出るらしい。 自分がCorona SD

記事を読む

no image

iPad2 を iOS5 にアップデート

iOS5 はまだ不安定な印象があったので、iPod touch 4th に入れただけで様子を見ていた

記事を読む

no image

iOSの消音問題(iPadの本体横のスイッチの機能が設定で変更可能なためにさらにややこしいことに)

おんぷちゃん for iPad から音が出ない、というレポートが定期的に日本からも海外からも来るのだ

記事を読む

iPad Pro 2017 12.9inch購入

新型コロナウィルスの影響でリモートワークの機会が増えているため、リモートワークをサポートす

記事を読む

Message

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Ember Mug 2のACアダプタをUSB Type-Cに変えてみた

冬になると活躍する Ember Mug 2 の充電器は付属のACアダ

Wi-Fi6Eルータ TP-Link AXE5400購入

Wi-Fi6E を試してみたくなり、TP-Link AXE5

児童手当 認定請求書申請 2024 「請求者が養育をする18歳に達する日以降の最初の3月31日までの子の数」とは?

2024年に受給していない人には手紙が届くらしい。 電子申請も

Vision Proアプリ開発本 8/24、8/26に発売

Vision Proアプリ開発入門 P400が 8/24 に発売、V

Developer Strap が日本でも購入可能に

USアカウントでしか購入できなかった Vision Pro 用 De

→もっと見る

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