TableTry_MainWindowxib.png

アプリ開発雑記[6] SQLiteBooks(その1)

今日は、前回記事までの成果であるNavigation ControllerをTab Bar内のタブに実装したものの発展系として、Navigation Controller以下にサンプルコード"SQLiteBooks"を埋め込むことにトライしました。作りたいアプリではユーザーが入力したデータを追加したり、削除したりする機能がある予定でして、SQLiteが唯一の方策かどうかはさっぱりわかりませんが、サンプルコードにあるようなデータの管理をイメージしていたので取り入れてみることにしました。備忘のために、作業内容+αをまとめます!
前回記事:アプリ開発雑記[5] Navigation Controller + TabBar その3

(1) SQLiteとは?

WikiPediaより:http://ja.wikipedia.org/wiki/SQLite

SQLiteはMySQLPostgreSQLと同じデータベース管理システムであるが、サーバとしてではなくアプリケーションに組み込まれて利用される軽量のデータベースである。 一般的なデータベース管理システムに比べて大規模な仕事には不向きだが、中小規模ならば速度に遜色はない。 また、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>
TableTry_MainWindowxib.png
<fig. 1>

(3-4)もうひとつIBで

同じくXcode上で、前回作ったNavigationViewController.xibをダブルクリックして、Interface builderで編集します。こちらは、File's OwnerをMasterViewControllerに書き換えます。(NavigationViewController.xibがスクリーンショットではNavController.xibとなってます;私がそう言う名前をつけただけです、紛らわしくてすみません・・・)これでNavigationViewControllerはお役御免です。xibは上記編集後、引き続き使用します。<fig. 2;一部次の作業が反映されてます。>

TableTry_NavControllerxib.png
<fig. 2>
SQLite_MainWindowxib.png
<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の該当タブを選択しても画面が現れません。落ちます!(これを忘れてずいぶんはまりました)

TableTry_NavControllerxib2.png
<fig. 4>

続きは次回。
あとはXcodeでのソースの改変がメインです。

<<免責事項>>
ここに紹介した方法を参考にしてアプリケーション開発を行ったことで発生しうる如何なる問題についても、当ブログ管理者は一切責任を負いません。

 

コメントを残す

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