今日は、前回記事までの成果であるNavigation ControllerをTab Bar内のタブに実装したものの発展系として、Navigation Controller以下にサンプルコード"SQLiteBooks"を埋め込むことにトライしました。作りたいアプリではユーザーが入力したデータを追加したり、削除したりする機能がある予定でして、SQLiteが唯一の方策かどうかはさっぱりわかりませんが、サンプルコードにあるようなデータの管理をイメージしていたので取り入れてみることにしました。備忘のために、作業内容+αをまとめます!
前回記事:アプリ開発雑記[5] Navigation Controller + TabBar その3
(1) SQLiteとは?
WikiPediaより:http://ja.wikipedia.org/wiki/SQLite
SQLiteはMySQLやPostgreSQLと同じデータベース管理システムであるが、サーバとしてではなくアプリケーションに組み込まれて利用される軽量のデータベースである。 一般的なデータベース管理システムに比べて大規模な仕事には不向きだが、中小規模ならば速度に遜色はない。 また、APIは単純にライブラリを呼び出すだけであり、データの保存に単一のファイルのみを使用する事が特徴である
組み込み機器やモバイルアプリケーションで流行っているようです。
(2) SQLiteBooksのファイルたち
- Database Interactions
- AppDelegate.h/m
- Book.h/m
- User Interface
- MasterViewController.h/m
- DetailViewController.h/m
- AddViewController.h/m
- EditingViewController.h/m
- Resources
- MainWindow.xib
- DetailView.xib
- EditingView.xib
- bookdb.sql
"Database Interaction", "User Interface", "Resource"というのはサンプルコードのグループです。ちなみに、細かい動作はまだ全く理解していないです。とりあえず、TabBarの中にこれらを埋め込むことを目標としました。注目すべきはxibファイルとxxxViewControllerたち、すなわち、ビューの制御に関わるファイルとなります。
(3) やったこと(前編)
(3-1) 必要なファイルをプロジェクトに追加
SQLiteBooksから、上記をすべてコピーします。
(3-2) UITableViewControllerをMasterViewControllerに
前回記事で言うNavigationViewControllerが果たしていた役割をMasterViewControllerに担わせます。ただし、MasterViewControllerはUIViewControllerなので、UITableViewControllerにします。
@interface MasterViewController : UITableViewController {
IBOutlet UITableView *tableView;
UINavigationController *addNavigationController;
DetailViewController *detailViewController;
AddViewController *addViewController;
}
(3-3) IBで作業
MainWindow.xibをダブルクリックしてInterface Builderを立ち上げます。そして、NavigationViewControllerがControllerを担っていたViewControllerはMasterViewControllerに置き換えてあげます。<fig. 1>
<fig. 1>
(3-4)もうひとつIBで
同じくXcode上で、前回作ったNavigationViewController.xibをダブルクリックして、Interface builderで編集します。こちらは、File's OwnerをMasterViewControllerに書き換えます。(NavigationViewController.xibがスクリーンショットではNavController.xibとなってます;私がそう言う名前をつけただけです、紛らわしくてすみません・・・)これでNavigationViewControllerはお役御免です。xibは上記編集後、引き続き使用します。<fig. 2;一部次の作業が反映されてます。>
<fig. 2>
<fig. 3>
(3-5) Navigation ItemとBar Button Itemを追加
SQLiteBooksのMainWindow.xib<fig. 3>にあるものと同じ、"Navigation Item"と"Bar Button Item"をLibraryからNavigationViewController.xibへDrag&Dropします。(<fig. 2>は既に追加済みです。)
(3-6) 追加したItemを接続
Bar Button ItemからFiles's Ownerへ右Drag&Dropして、IBAction addBookにつなぎます。また、Table ViewからもFile's OwnerへDrag&Dropして、datasource、delegateとしてつなげます。まだあります。Navigation ItemからもFile's OwnerへDrag&DropしてnavigationItemとしてつなげます。最後にFile's OwnerからTable Viewへ接続します(view)。これを忘れるとTabBarの該当タブを選択しても画面が現れません。落ちます!(これを忘れてずいぶんはまりました)
<fig. 4>
続きは次回。
あとはXcodeでのソースの改変がメインです。
<<免責事項>>
ここに紹介した方法を参考にしてアプリケーション開発を行ったことで発生しうる如何なる問題についても、当ブログ管理者は一切責任を負いません。