• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Objective-c  画面遷移について)

Objective-c 画面遷移について

このQ&Aのポイント
  • Objective-cで画面遷移を行う方法について教えてください。
  • UIScrollViewでスクロールさせる画面と、固定の画面を表示する画面を切り替える方法を教えてください。
  • 特定の位置に表示される画面を作成する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.1

根本的にプログラムの構成を設計し直すことをお勧めします。 iOSでは、Navigation Controllerや、TabBar Controllerを使って、画面遷移することが標準かつ推奨となっています。あなたのプログラムのように、Viewの上にViewを載せてを繰り返すと、むだにメモリを消費するばかりで、効率が悪いばかりでなく、メモリ不足に起因する、重大なエラーを導く危険があります。OSが用意してくれる画面遷移のシステムを使えば、メモリ配分も適切に行ってくれるので、効率的かつ安全ですし、ほかのiOSアプリと同等の使用感をユーザに与えてくれるので、「なにこれ、なんかださいんですけど」と不評を買うことが少なくなります。 Navigation Controllers file:///Developer/Platforms/iPhoneOS.platform/Developer/Documentation/DocSets/com.apple.adc.documentation.AppleiOS4_3.iOSLibrary.docset/Contents/Resources/Documents/index.html#featuredarticles/ViewControllerPGforiPhoneOS/NavigationControllers/NavigationControllers.html%23//apple_ref/doc/uid/TP40007457-CH103-SW1 なんだかむずかしそうですが、画面遷移のプログラムは、完全にワンパターンでいけますので、一回プログラムを覚えれば、それを単純に繰り返すだけですみます。 さて、あなたのプログラムで、(画面遷移ではなく、単に)インスタンスcontroller(という名前のView)に、子ビュー(subview)として貼り付けた、インスタンスsvc.viewは、親ビューの親ビューであるインスタンスscrollViewの上にあるのですから、いっしょにスクロールするのは、あたりまえといえば、あたりまえです。svc.viewがscrollViewとリプレイスするようなプログラムでないと、ご希望の結果にはなりません。 それと、タップしただけで画面遷移するのは、やっぱりダサイですよ。スワイプ(Swipe)して遷移するようにしないと。なにせ、みんなこれをやりたくで、iPhoneやAndroidを使っているようなものでしょ?

eTakasy
質問者

お礼

迅速なご回答、ありがとうございます。 「Navigation Controller」でやはり作った方がやはり良いんですね。。 実機テストをするとメモリ不足のエラーメッセージも出ていて実際に困っていました。。 ただ、UIScrollViewだとタップやスワイプといったイベントはやはり、サブクラスで 書かなくてはいけないのでしょうか?それだと、また画面遷移の処理を書くのにまたはまってしまう予感が…… その時はまた質問させて下さい。 まずは、Navigation Controllerで一から作り直してみます! 本当にありがとうございました。

その他の回答 (1)

  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.2

関連するQ&A