関連する質問を無回答に投稿しましたが、ここでは絞り込みを減らします。基本的に、私はオープンソースコードの一部を使用してFacebookスタイルを実装し、スライドしてタイプビューを表示しています。これの実装は、最初のスライディングビューコントローラーが起動時のアプリケーションウィンドウのルートビューコントローラーであるというパターンに依存しています。次に、すべてのView Controllerが、この便利な方法でそのスライディングViewControllerへの参照を取得できるようにします。
- (ECSlidingViewController *)slidingViewController
{
UIViewController *viewController = self.parentViewController;
while (!(viewController == nil || [viewController isKindOfClass:[ECSlidingViewController class]])) {
viewController = viewController.parentViewController;
}
return (ECSlidingViewController *)viewController;
}
これが私の問題だと思います。モーダルで表示するビューコントローラ用に、このスライド式のスタイルメニューが必要です。ただし、モーダルに提示されたView Controllerは、その親ViewControllerに対してnullを返します。そのため、そのルートビューコントローラー(最初のスライディングビューコントローラー)への参照を取得しようとすると、取得できません。View Controllerを押すと機能しますが、それはアプリケーションに必要なフローではありません。このモーダルViewControllerを、現在のViewControllerの子として追加できればうまくいくと思いました。しかし、試してみると、すでにアクティブになっているビューコントローラーをモーダルに表示しているという例外が発生しました。誰かがこれを解決する方法を提案できますか?
編集:これは私がやろうとしている種類のことの例です。