x-code,ストーリーボード、segueセグウェイでの画面遷移、プログラムコードでの画面遷移

x-code,ストーリーボード、segueセグウェイでの画面遷移、プログラムコードでの画面遷移
(一部間違った解釈、理解をしているところがあります。随時、修正、変更、更新します。)

<関連記事>
X-CODEストーリーボード、セグウェイ関連記事

エラー対処記事X-Code今日のエラーの対処、Navigationナビゲーションコントローラーのエラー、 unrecognized selector sent to instance

リンクメモ情報収集メモ UITableVIew、ストーリーボード関連|・UIPIckerViewの情報まとめ|・その他、カメラ、色|Admob view|・CoreData、データベース検索

ストーリーボードを使用するのは便利ですが、作り込むとあれこれと条件を入れて判定させてから画面を移動させたいときがあります。
その場合、初心者向けの書籍に書いてあることでは役に立たないことがありました。

1.ボタンを配置して、そのボタンからctrキーをしてつないで次の画面viewへ移動する方法

 IBActionになにもコードを記述しなくても、ボタンを押すと半強制的に画面が移動します。
preparesegueで条件文を書くことができます。
 この利点は、とにかく、ボタンを押したら、画面遷移させたいときにすぐに利用できます。

2.ボタンを配置するけれど、Viewの下の黒枠のところのアイコンからctrキーをしてつないで次の画面viewへ移動する方法

画像 storyboard_link.png
storyboad_link

 ボタンのIBActionに必要なコード例えば、
 [self performSegueWithIdentifier:@”mySegue” sender:self];
 を記載して、移動します。@”mySegue” は移動先のidenfierになります。ナビゲーションコントローラーがあっても大丈夫です。
 
 StoryBoardで画面遷移、画面間の値の受け渡し(とデリゲート)を参考にしました。
 
 元に戻るときは
 [self dismissModalViewControllerAnimated:YES];
 この場合の利点は、移動する前にある種の条件を記載して、その条件に合わなければ、移動しないようにできます。
 例えば、画面上のあるスイッチを切り替えていなかったら、アラートを表示させたり、切り替えていれば、アラートを表示させずに、画面を移動したりできます。
 1の方法だと、移動させたくなくても移動しちゃいます。
 

3.プログラムで直接画面を移動する

 従来からの方法で、セグウェイを使用せずに移動できます。セグウェイを利用するときは2の方法になります。

 
 

<ストーリーボード、セグウェイの利用上の注意点、画面遷移>

 主に、ナビゲーションコントロールを使った場合の利用上の注意点です。
 ナビゲーションコントロールやタブバーを使うときの画面展開、画面の配置に注意が必要です。
 原則として線形の一直線上のシンプルな画面を心がけて、Viewを作るようにしましょう。
 

・原則、ループとなるような画面遷移はできない。

 ストーリボードの画面遷移は、線形の一直線上の動きです。A-B-C-Dと移動したら、D-C-B-Aと逆に戻ります。そのため、DとBの間でループするようにつなぐとナビゲーションコントローラーの表示が正常に行われなくなります。
 ただし、
StoryboardのUnwind Segueの使い方 | Developers.IO
 に記載のUnwind Segueを使うことにより、途中の画面に戻ることができます。
 つまり、DからBに、またはDからAに戻ることができます。この場合、かつて移動して表示させた状態が保持されています。DからAに戻るのと同じような状態で一気にバックジャンプができます。この保持されている状態が、気にくわないというかリセットして欲しいと思っているときは他の方法を考える必要があります。
 

・ナビゲーションコントロールを使って分岐は複数できるけれど、集結はできない

 Viewから複数のViewへ分岐できます。でも、複数の分岐側から、ひとつのViewへ集中的に結合すると、ナビゲーションコントロールバーが正常に表示されない恐れがあります。
 
 要約すると、複雑な画面遷移、移動をする場合は、ナビゲーションコントロールを使わないか、いっそのこと、ストーリーボードを使わずにアプリを作った方が良いのかもしれません。
 画面でパーツを自由に配置して、画面を作って、また画面を作ってと好きなことがことができる反面、自由度が思ったよりも低いのです。
 今後のバージョンアップでループの画面遷移が可能になることを望みます。
 

/*テキストビューの横幅320、高さをテキストの大きさに合わせて調整する。*/
[textView setFrame:CGRectMake(0, 0, 320, textView.contentSize.height)];
全体の高さ

1
[[UIScreen mainScreen] bounds].size.height

ステータスバーの高さ
[[UIApplication sharedApplication] statusBarFrame].size.height

ナビゲーションコントローラーのナビゲーションバーの高さ
self.navigationController.navigationBar.frame.size.height


結婚指輪 マリッジリング  ,
刻印(文字彫り無料) PILOT(パイロット) ブランド(True Love(トゥルーラブ))
在庫あり
日付、名前の刻印を無料サービス。サイズ交換可能です。サイズがわからない時はリングゲージを無料でお貸しします。
ゴールドとプラチナとのコンビネーションがお洒落です。
センターのダイヤがきらりと華やかさも添えています。


エンポリオアルマーニ腕時計[EMPORIO ARMANI]ARMANI-AR0585
材質:ステンレススチール
サイズ:約縦43mm×横43mm

画像韃靼そば茶【国産・無農薬】北海道産のダッタンそば茶 急須で飲まないでください マグカップで飲みながら ソバの実も必ず食べてください

画像北海道スープカレー[北海道お土産]在庫あり

■商品詳細情報商品名北海道スープカレー 380g内容量具材180g / スープ200g

関連記事

「スポンサーリンク」


ツイートツイート
カテゴリー: iPhoneアイフォンアプリ開発 タグ: パーマリンク