0

私はこの質問に対する答えを簡単に見つけることができると思うでしょう、そしておそらく私はそれを逃したでしょう、しかしここに行きます。

私のアプリにはいくつかのビューが含まれており、メインビューには、他のビューを通じてユーザー、マイク、カメラから徐々に収集する一連の情報が表示されます。それはすべて、1つの大きなクライマックスの「送信ボタン」で終わることになっています。その時点で、データは安全に保存されます(現在、SQLデータベースに保存されています...しかし、それは別の話です)。

それが完了したら、プロセス全体を最初からやり直したいのですが、これはビューを未使用の状態に再初期化することを意味します。アンドロイドでは、新しいインテントを投げて古いインテントを破壊することができます。

私はアプリデリゲートから始めることになっていることを収集します(以下のコードを参照)。ここで問題は、ここからどこに行くのかということです。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.mainViewController = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
    self.window.rootViewController = self.mainViewController;
    self.mainViewController.managedObjectContext = self.managedObjectContext;

    [self.window makeKeyAndVisible];
    return YES;
}
4

2 に答える 2

0

開始位置としてRootViewControllerを作成します。rootViewControllerがロードされると、最初のデータ入力プロセスを初期化して追加します。このように、送信を押すとpopToRootViewControllerが呼び出され、rootViewContollerが読み込まれると、最初のデータ入力プロセスが初期化されて再度読み込まれます。

于 2012-01-11T22:15:13.150 に答える
0

ですから、かなりの割合で掘り下げて試行錯誤した後です。思い通りに動くものを見つけました。

以下を実行する特別な関数をアプリデリゲートに作成しました。

- (void) newScreen
{
    self.mainViewController = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
    self.window.rootViewController = self.mainViewController;
    self.mainViewController.managedObjectContext = self.managedObjectContext;
}

次に、メインビューコントローラーから、その関数を呼び出します

[(AppDelegate *)[[UIApplication sharedApplication] delegate] newScreen];

やさしい...

于 2012-01-12T15:35:24.787 に答える