今日は、前回記事までの成果であるNavigation ControllerをTab Bar内のタブに実装したものの発展系として、Navigation Controller以下にサンプルコード"SQLiteBooks"を埋め込むことにトライしました。作りたいアプリではユーザーが入力したデータを追加したり、削除したりする機能がある予定でして、SQLiteが唯一の方策かどうかはさっぱりわかりませんが、サンプルコードにあるようなデータの管理をイメージしていたので取り入れてみることにしました。備忘のために、作業内容+αをまとめます!
(2) SQLiteBooksのファイルたち
- 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>
<fig. 1>
(3-3) 同じくXcode上で、前回作ったNavigationViewController.xibをダブルクリックして、Interface builderで編集します。こちらは、File's OwnerをMasterViewControllerに書き換えます。(NavigationViewController.xibがスクリーンショットではNavController.xibとなってます;私がそう言う名前をつけただけです、紛らわしくてすみません・・・)これでNavigationViewControllerはお役御免です。xibは上記編集後、引き続き使用します。<fig. 2;一部次の作業が反映されてます。>
<fig. 2>
<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の該当タブを選択しても画面が現れません。落ちます!(これを忘れてずいぶんはまりました)
<fig. 4>
続きは次回。あとはXcodeでのソースの改変がメインです。
<<免責事項>>ここに紹介した方法を参考にしてアプリケーション開発を行ったことで発生しうる如何なる問題についても、当ブログ管理者は一切責任を負いません。
posted by macj at 23:50
|
Comment(0)
|
TrackBack(0)
|
iPhoneアプリ開発
|

|