私は、それぞれが単一の UIViewController の UIView である約 30 ページを含む書籍アプリを持っています。これを StoryBoarding と UIPageViews を使用するアプリに移行したいと考えています。UIPageView の各「ページ」は、UIView ではなく UIViewController である必要があるようです。これについて最善の方法は何ですか?各 UIView ページから UIViewController を作成する必要がありますか?
2 に答える
うん。UIView
すべてのサブクラスをサブクラスとして書き直しますUIViewController
。私はいくつかのプロジェクトでそれを実行しましたが、少し面倒であることがわかりました。私のプロジェクトでは、新しい Xcode プロジェクトを作成して新しいインフラストラクチャを構築するのが最も簡単であることがわかりました。UIViewController
次に、古いクラスごとに新しいクラスを作成しUIView
ます。UIView
次に、ほとんどのコードを古いクラスから新しいクラスにコピー アンド ペーストしUIViewController
ました。に色々変えましself
たself.view
。のライフサイクルはUIViewController
UIView よりも少し複雑なので、初期化コードの一部を指定されたイニシャライザーからサブクラスのメソッドviewDidLoad
とviewWillAppear
メソッドに移動することになりました。UIViewController
コメントへの返信: 私のアプリでは多くのページに独自のインタラクティブ機能があるため、UIViewController
それらの機能を管理する独自のサブクラスを作成しています。一部のページには同じ機能がありますが、コンテンツが異なります。UIViewController
これらは、1 つのサブクラスの複数のインスタンスを使用するだけです。私のモデル オブジェクトは、これらのUIViewController
サブクラスを作成し、適切なコンテンツを設定します。
つまり、UIViewController
ページごとに新しいサブクラスを作成する必要はありません。ページに独自の機能がある数だけ。ページが何もしない場合は、UIViewController
サブクラス化せずにそのまま使用することもできます。
iOS 5iPhoneUIPageViewControllerアプリケーションの例の記事をご覧ください。この章では、ページビューコントローラの背後にある概念の概要と、このクラスの動作を示すために設計されたサンプルアプリケーションについて説明します。