2009年05月10日

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

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

前回記事:アプリ開発雑記[5] Navigation Controller + TabBar その3
http://road2iphone.seesaa.net/article/118949434.html



(1) SQLiteとは?

WikiPediaより:http://ja.wikipedia.org/wiki/SQLite
SQLite はMySQLPostgreSQLと同じデータベース管理システムであるが、サーバとしてではなくアプリケーションに組み込まれて利用される軽量のデータベースである。 一般的なRDBMSに比べて大規模な仕事には不向きだが、中小規模ならば速度に遜色はない。 また、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-0) 必要なファイルをプロジェクトに追加します。SQLiteBooksから、上記をすべてコピーします。

(3-1) 前回記事で言うNavigationViewControllerが果たしていた役割をMasterViewControllerに担わせます。ただし、MasterViewControllerはUIViewControllerなので、UITableViewControllerにします。

@interface MasterViewController : UITableViewController {
    IBOutlet UITableView *tableView;
    UINavigationController *addNavigationController;
    DetailViewController *detailViewController;
    AddViewController *addViewController;
}

(3-2) MainWindow.xibをダブルクリックしてInterface Builderを立ち上げます。そして、NavigationViewControllerがControllerを担っていたViewControllerはMasterViewControllerに置き換えてあげます。<fig. 1>

TableTry_MainWindowxib.png
<fig. 1>




(3-3) 同じく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-4)  SQLiteBooksのMainWindow.xib<fig. 3>にあるものと同じ、"Navigation Item"と"Bar Button Item"をLibraryからNavigationViewController.xibへDrag&Dropします。(<fig. 2>は既に追加済みです。)

(3-5) 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でのソースの改変がメインです。



<<免責事項>>
ここに紹介した方法を参考にしてアプリケーション開発を行ったことで発生しうる如何なる問題についても、当ブログ管理者は一切責任を負いません。
拍手する
posted by macj at 23:50 | Comment(0) | TrackBack(0) | iPhoneアプリ開発 | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は90日以上新しい記事の投稿がないブログに表示されております。