1

私は最近、下部のタブバーの代わりに上部のセグメント化されたコントロールを使用して UITabBarController の機能を提供するJCMSegmentPageControllerを見つけました。

今後のプロジェクトで使用するつもりでしたが、絵コンテに接続することは不可能でした。

現在関係セグエを作成できないため、問題を解決するためのさまざまな可能性について考えました。

  • UITabBarController をサブクラス化するラッパー オブジェクトを使用して、view-controllers-relationship を「盗む」
  • IBOutletCollection とプレースホルダー オブジェクトの使用
  • カスタム セグエを使用します。これは、コントローラー間を切り替えるのではなく、ビューを変換して「親」に適合させ、埋め込み用に提供します。

しかし、それらはすべて多かれ少なかれハックに思えます。よりエレガントなソリューションを求めたいですか?

4

1 に答える 1

1

パトリック

ストーリーボードと一緒に使用する方法を以下に示します。

ストーリーボードでの JCMSegmentPageController の使用

含まれているView Controllerを作成し、セグエ関係を設定しません。以下の画像で、一番左の VC は JCMSegmentPageController サブクラスです。右側の他の 2 つは、含まれている VC です。

次に、含まれている各 VC (この場合は EvstEveryJourneyTableView と EvstFollowingJourneyTableView) に一意の ID を割り当てます。

ViewController の識別子の設定

最後に、以下に示すように、instantiateViewControllerWithIdentifier を使用してそれらをインスタンス化します。

- (void) viewDidLoad {
  EvstEverybodyJourneyTableViewController *jvc = [self.storyboard instantiateViewControllerWithIdentifier:@"EvstEveryJourneyTableView"];
    EvstEverybodyJourneyTableViewController *dvc = [self.storyboard instantiateViewControllerWithIdentifier:@"EvstFollowingJourneyTableView"];
  self.delegate = self;
    self.viewControllers = [NSArray arrayWithObjects:jvc, dvc, nil];
  [super viewDidLoad];
}
于 2012-05-23T16:06:50.833 に答える