0

私は3つの異なるXIBを持つ3つのView Controllerを持っています。ViewControllerA、ViewControllerB、ViewControllerCとしましょう。すべてのView Controllerには、そのプロパティにviewという名前のUIView変数があります。したがって、次のようになります。

@property (readwrite, retain) UIView *view;

最初に ViewControllerA のシーンが読み込まれ、次にボタンをタッチすると ViewControllerB のシーンが表示されます。しかし、私は意図的にViewControllerAのUIViewをスーパービューから削除していません。次に、ボタンに触れた後、シーンは ViewControllerC に移動します。ここで、ViewControllerC に移動する前に、ViewControllerA と ViewControllerB の両方の UIView をスーパー ビューから削除します。

ViewControllerB の UIView を削除しても問題ありません。ViewControllerB メソッドで次のようなことができます。

[self.view removeFromSuperview];

しかし、どうすればViewControllerAのUIViewを削除できますか?

ありがとう

4

1 に答える 1

0

他のビュー コントローラーから完全に独立させたい場合は、appDelegate.window.rootViewController で切り替えることができます。UIApplication を指す変数 appDelegate のみを作成します。
そして、アニメーションを自分で処理します。

例:

AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
UIViewController *controller1 = [ViewControllerA alloc] initWithNibName:@"ViewControllerA" bundle:nil];
UIViewController *controller2 = [ViewControllerB alloc] initWithNibName:@"ViewControllerB" bundle:nil];

appDelegate.window.rootViewController = controller1;
appDelegate.window.rootViewController = controller2;
于 2012-11-13T09:09:10.387 に答える