0

に問題がありますViewControllers。それらの4つがあります。これがそれらのシーケンスです。私のビューに名前を付けて申し訳ありませんが、これは単なる例です。


startViewController ------> menuViewController ------> C1ViewController
                                          \
                                           \ ------> ImportantViewController

startViewControllerは私のイントロ画面です。終了後、 [self presentViewController:vc animated:YES completion:NULL];私のmenuViewController.

上記の図のように、2 つのViewControllermenuViewControllerのボタンがあります。また、私はこれでビューにそれらを提示しました: [self presentViewController:vc animated:YES completion:NULL];私はこれでに戻りmenuViewControllerます[self dismissModalViewControllerAnimated:YES];

私が望んでいたのは、他のビューに行ってもImportantViewControllerそのままでいることです。MainViewController-likeViewControllerで実行できるかどうかはわかりませんが、removeFromSuperViewではないか、他のすべてのViewControllerの背後に置くだけです。出来ますか?そしてどうやって?

ありがとう。

4

2 に答える 2

0

次のように、MenuViewController.h ファイルにプロパティを作成します...

#import "ImportantViewController.h"

@property (nonatomic, strong) ImportantViewController *importantViewController;

重要なのは、プロパティを強力にすることです。つまり、menuViewController は重要なViewController への参照を保持し、バックグラウンドで保持カウントをインクリメントします。

ビューがロードされた場合 (または実際にはどこでも)、ImportantViewController をセットアップできます...

@syntheseize importantViewController;


- (void)viewDidLoad
{
     self.importantViewController = [[ImportantViewController alloc] init];
}

次に、プレゼンテーションの準備ができたら、次のようにします。

[self presentViewController:importantViewController Animated:YES];

その後、最終的にそれを閉じると、menuViewController はまだそれへの参照を持ち、割り当ては解除されません。その後、後で同じコントローラーを再度表示できます。

注: これはすべて、自動参照カウント (ARC) を使用していることを前提としています。

于 2012-06-28T15:25:03.020 に答える
0

importantViewController を開始ビュー コントローラーにし、他のすべてのビューをモーダルに表示します。ビューを切り替えたい場合は、dismissModalViewControllerAnimated メソッドを呼び出してから、新しいビューを表示します。これは、ビューを表示するたびに保存/ロードせずに入力された情報を保持できるテキストフィールドまたは何かがある場合に機能します。

//Inside all view controllers aside from the important one

    [self dismissModalViewControllerAnimated:YES];

新しいコントローラーを表示するには、モーダル セグエを作成して重要なビュー コントローラーから呼び出すか、プログラムで呼び出します。

于 2012-06-28T18:22:21.403 に答える