.08 2012

Storyboardを使ってのNavigationを作成する手順について

はじめまして。
昨年12月に入社しました。江原と申します。

未熟者ですが早く戦力になれるよう日々精進していきます。

今日は、Storyboardを使ってのNavigationを
作成する手順について調べてみました。

今回の作成条件とゴールは以下としました。
【条件】
 ・画面デザインとか遷移とかはなるべく"Storyboard"を使用
 ・ARCは未使用(使った事が。。。)
 ・iPhone向け

【ゴール】
 ・一覧から詳細画面が表示されるサンプルの作成

とりあえず、プロジェクトを作ります。
せっかくですので空っぽから作ってみたいと思います。
Empty Applicationを選択しました。
20120208_st_nav_001.jpg


プロダクト名はテスト用の適当な名称を入れます。
※ Core Data等使用しないので全てチェックを外しました。
20120208_st_nav_002.jpg


createを押すとプロジェクトが作成されます。


では、StroyBoardを使ってみましょう!


プロジェクト名を右クリックして
NewFileを選択してStoryboardを作成します。
20120208_st_nav_004.jpg
20120208_st_nav_005.jpg
20120208_st_nav_006.jpg


これに画面を作っていきます。

【1.Storyboardでデザイン】
1) 画面右下からドラックしてNavigationControllerを配置します。
20120208_st_nav_007.jpg


2) 最初の1画面目に一覧を表示しますのでTableViewContorollerを配置します。
20120208_st_nav_008.jpg


最初からついている rootViewController を消して
20120208_st_nav_009.jpg


新たなrootViewControllerとして接続します。
NavigationControllerからTableViewControllerへ
ctrを押しながらドラッグしRelationshipを指定します。
20120208_st_nav_010.jpg



3) 一覧から選択された詳細画面を作成します。
  ViewControllerを配置します。
20120208_st_nav_012.jpg


詳細のデモとしてTextViewを配置しています。
20120208_st_nav_013.jpg



4) 一覧から詳細への画面遷移を設定します。
  一覧のセルから詳細画面へ push で接続します。
20120208_st_nav_014.jpg


それらしくなったので実行してみたら
。。。動きません。。。真っ白です。。
Storyboardが初期画面に設定されていない為でした。。


【2.Storyboardの起動設定】
1) Main Storyboardの設定を行います。
20120208_st_nav_016.jpg


2) AppDelegateの -(BOOL)application:didFinishLaunchingWithOptions:を
 修正しましす。(元から作成している画面をコメントアウト)


これで画面がでました!
しかしながら遷移いたしません。。。

テーブルの各セル(一つ一つの箱の事)が押された時に
Storyboardだけでは遷移するようにならないようです。


【3.TableViewの設定及び動作】
1)最初の一覧画面のデータ表示や動作を決めるUITableViewControllerを継承したクラスを作成します。
20120208_st_nav_018.jpg
20120208_st_nav_019.jpg
20120208_st_nav_020.jpg


 ItemsListViewControllerとして作成しました。

2)一覧の表示内容を実装します。
”- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView” を修正
return 0; を return 1; に変更します


”- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section” を修正
return 0; を return 5; に変更します。


”- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath ”を修正(セルの中身を記述する以下を追加)
cell.textLabel.text = [NSString stringWithFormat:@"item No.%d" , indexPath.row ];



3)Storyboardに作ったclassを設定します。
 最初に起動する画面にCustomClassに ItemsListViewControllerを指定します。
20120208_st_nav_021.jpg


これで一覧が表示されるようになりました。
まだまだ・・・遷移出来ません。

4)Storyboardの一覧画面から詳細画面に
 のびている矢印(Storyboard Segue)を選択し
 名称を付けます。itemsListToDetailとつけました。

※ segueを辞書で引くと 途切れなく移行する. といった意味みたいです。

5)ItemsListViewControllerに戻ってセルを選択した際の動作を設定します。
 ”- (void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath ” に以下を追加

[self performSegueWithIdentifier:@"itemsListToDetail" sender:self];

これで遷移出来ました。

普段はなるべく全てコードで書くようにしているのですけど
Storyboardはみたいに複数の画面イメージと何処と何処がつながっているのかを
ぱっと確認しながら作成できるのは良いなぁと感じました。

スポンサーサイト



.11 2011

勉強メモ 4

こんばんは、matsudaです。

久しぶりの投稿です;;
基礎の基礎で簡単なことですが、
最近の勉強メモに書いたことをいくつか書きます!

○何秒か後にあるメソッドを呼びたい時や、定期的に繰り返しメソッドを呼びたい時は→NSTimer

[NSTimer scheduledTimerWithTimeInterval:2.0f //タイマーが呼ばれる間隔
target:self
selector:@selector(resetPosition:) //呼び出すメソッド
userInfo:nil //処理するオブジェクト
repeats:NO]; //リピートするかどうか

呼び出されるメソッド↓↓
- (void)resetPosition:(NSTimer*)sender
{
//処理を記述
}

タイマーを止めたいときは↓↓
[timer invalidate];


○TableViewをスクロールさせないようにする
self.tableView.scrollEnabled = NO;

○TableViewCellをハイライトさせないようにする
cell.selectionStyle = UITableViewCellSelectionStyleNone;


○TablevViewを更新する
[self.tableview reloadData];
 ※reloadしてもviewDedLoadは呼ばれないらしい。。


・・・と、このくらいです。
次回からは、最近作っている『ヨンコマン』というアプリでの勉強メモを書いていきたいと思います^^;
.30 2011

Core Animationについて(2)

CABasicAnimationを使ってアニメーションを繰り返したい場合、
repeatCountを使用します。

このrepeatCountには繰り返したい回数を指定することができますが、

animation.repeatCount = HUGE_VAL;

のようにHUGE_VALを指定すると無限に繰り返すことができます。
.26 2011

勉強メモ 1

初めまして。
Matsudaと申します。

iPhoneアプリ開発勉強中なので、勉強中に学んだ事や、
つまってしまったところをメモがわりに書いていこうと思います;;

今回は、先日勉強した「アプリ起動中にメールを送信」するという機能のメモを書きます!

1.MessageUI.frameworkを追加

2.MessageUI/MessageUI.hをインポート

3.使いたいViewにMFMailComposeViewControllerを実装
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;

NSString* maiBody = @"本文ここから";
// メール本文
[picker setMessageBody:mailBody isHTML:NO];

// TO
[picker setToRecipients:[NSArray arrayWithObject:toaddress]];

// CC
[picker setCcRecipients:[NSArray arrayWithObject:ccaddress]];

// メール件名
[picker setSubject:@"こんにちは"];

[self presentModalViewController:picker animated:YES];
[picker release];

4. mailComposeControllerメソッドがメール送信完了で呼ばれる
 ので条件分岐
 switch (result){
  case MFMailComposeResultCancelled:
  //キャンセルした場合
  break;
  case MFMailComposeResultSaved:
 //保存した場合
  break;
  case MFMailComposeResultSent:
  //送信した場合
  break;
  case MFMailComposeResultFailed:
  [self setAlert:@"失敗":@"送信失敗したよ!!!!!!!!!!!!"];
break;
default:
break;
}
[self dismissModalViewControllerAnimated:YES];

・・・・とこんな感じでできたと思います;

間違っていたらすいません(;ω;)








iOSアプリ開発入門 comment(-) trackback(-)
.20 2011

Core Animationについて(1)

Oogamiです。

iPhone/iPadアプリで凝ったUIをアニメーションで表現しようとしたときに
欠かせないiOSのCoreAnimation関連情報なんかを自分自身のお勉強をかねて
今後ちょこちょこ載せていきたいと思います。

早速ですが、iOSで使用する主なレイヤーには
・CALayer
・CATextLayer
・CAGradientLayer
・CAReplicatorLayer
・CAShapeLayer

なんかがあって、(他にもCAScrollLayerやCATiledLayerなどもあります)
そのなかで今回はアニメーション可能(Animatable)なタスクをピックアップして表にまとめてみました。

 

Class

 
 

Task

 

対応iOS

iOS 2.0

iOS 3.0

iOS 3.2

CALayer

anchorPoint

anchorPointZ

backgroundColor

backgroundFilters

borderColor

borderWidth

bounds

compositingFilter

contents

contentsCenter

contentsRect

cornerRadius

doubleSided

filters

hidden

masksToBounds

opacity

position

rasterizationScale

shadowColor

shadowOffset

shadowOpacity

shadowPath

shadowRadius

shouldRasterize

sublayerTransform

transform

zPosition

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

CATextLayer

fontSize

foregroundColor

X

X

X

X

CAGradientLayer

colors

endPoint

locations

startPoint

X

X

X

X

CAReplicatorLayer

instanceAlphaOffset

instanceBlueOffset

instanceColor

instanceDelay

instanceGreenOffset

instanceRedOffset

instanceTransform

X

X

X

X

X

X

X

CAShapeLayer

fillColor

lineDashPhase

lineWidth

miterLimit

path

strokeColor

X

X

X

X

X

X



次回からはこの中から使用したことのないものを選んだりして
色々と試してみたいと思いまーす。
 HOME 

ブログ内検索

関連リンク

製品情報

最新記事

カテゴリ

プロフィール

neoxneo



NEXT-SYSTEM iOS Developers Blog


  • UTO:
    カナダ版iPhone4Sは、マナーモードでシャッター音がならない…


  • Ehara:
    ...


  • Hayate:
    ...


  • Tasaki:
    Developer登録完了...したのはいいけど


  • Ueda:
    ...



リンク