トップページ | xcode4 をインストールしたらしておくべき設定 »

2011年3月15日 (火)

TabNaviApplication

xcode3 から xcode4 にアップデートして Tab Bar と Navigation を組み合わせたアプリの作り方に少し戸惑ったのでメモ。

Tab Bar Application を選択します。 Tabnavi1

プロジェクト名を設定して次へ。 Tabnavi3

MainWindow.xib を選択。Window が表示されます。 Tabnavi2

画面左下の再生マークの逆向きのようなアイコン「◀」をクリック Tabnavi4

右上にある View の一番左をクリックし、インスペクタを表示させます。 Tabnavi5

インスペクタから Navigation Controller を First View の前にドラッグして追加。 Tabnavi6

中央の Objects にある View Controller の上に TableViewController をドラッグ。 Tabnavi8 Tabnavi82

プロジェクトのルートフォルダを右クリック「New File」を選択して表示されるウィンドウから 「UIViewController subclass」 を選択し、次へ。 20110316_122211

Subclass of を 「UITableViewController」を選択し、 「With XIB for user interface」がチェックされている場合はチェックを外して次へ。 20110316_122315

名前を適当につけて保存すると、プロジェクトにファイルを追加されます。 20110316_122315_2 20110316_125711

MyTableViewController.h を以下のように編集します。

#import <UIKit/UIKit.h>

@interface MyTableViewController : UITableViewController {
    NSMutableArray *data;
}

@end

MyTableViewController.m を以下のように編集します。(変更箇所以外は省略)

- (void)dealloc
{
    [data release];        // tableView 用データ解放
    [super dealloc];
}

- (void)viewDidLoad
{
    [super viewDidLoad];

    // Uncomment the following line to preserve selection between presentations.
    // self.clearsSelectionOnViewWillAppear = NO;

    // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
    // self.navigationItem.rightBarButtonItem = self.editButtonItem;

    // tableView 用データ
    data = [[NSMutableArray alloc] init];

    // tableView 用データの追加
    [data addObject:@"1行目"];
    [data addObject:@"2行目"];
    [data addObject:@"3行目"];
    [data addObject:@"4行目"];
    [data addObject:@"5行目"];

    // tableView 再描画
    [self.tableView reloadData];

}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// #warning Potentially incomplete method implementation.
    // Return the number of sections.
    return 1;    // セクション数, 今回はセクションを作らないので 1 固定
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// #warning Incomplete method implementation.
    // Return the number of rows in the section.
    return [data count];    // tableView の行数
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    // static NSString *CellIdentifier = @"Cell";
    int row = [indexPath row];    // 表示を行おうとしている行番号
    NSString *CellIdentifier = [data objectAtIndex:row];    // 行番号からデータを取得

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
        cell.textLabel.text = CellIdentifier;    // データをセルに設定
    }

    // Configure the cell...

    return cell;
}

プロジェクト一覧から MainWindow.xib を選択して Interface Builder を表示させ、 「Objects」から 「Table View Controller」を選択します。 20110316_135511_2

Identity inspector を選択し、Class の部分を MyTableViewController へ変更します。 20110316_135828

以上で、ビルド/実行すると外観は無事に完成です。 20110316_140013

iPhone SDK アプリケーション開発ガイドBookiPhone SDK アプリケーション開発ガイド

著者:Jonathan Zdziarski
販売元:オライリージャパン
Amazon.co.jpで詳細を確認する

詳解 Objective-C 2.0 改訂版Book詳解 Objective-C 2.0 改訂版

著者:荻原 剛志
販売元:ソフトバンククリエイティブ
Amazon.co.jpで詳細を確認する

トップページ | xcode4 をインストールしたらしておくべき設定 »

iOS SDK」カテゴリの記事

コメント

初めまして、みすとです。
iPhoneアプリ初心者で色々と参考にさせて頂いています。
有り難うございます。

1つ質問がありますので、ご多忙でなければ教えて下さい。
TabNaviApplicationの通り作成した場合、
app delegate'sのdidFinishLaunchingWithOptionsの前に、
tableview'sのviewDidLoadがコールされるので、didFinishLaunchingWithOptionsを
先にコールさせたい場合、Interface Builderで作成するのではなく、
didFinishLaunchingWithOptionsで、コントロールの作成をしないといけないのでしょうか?

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: TabNaviApplication:

トップページ | xcode4 をインストールしたらしておくべき設定 »

無料ブログはココログ

最近のコメント

2018年10月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

最近のトラックバック