0

私はバックエンドとしてObjective C使用しています。このテクノロジーは非常に新しいです。デザインテンプレートとしてマスターディテールを使用してプロジェクトを作成しました。詳細ビューでは、ポップアップを使用して詳細を表示しています。またxcodeSUP 2.1.3あそこのボタン。このボタンをクリックするとUIView、ポップアップ自体で次のボタンに移動する必要があります。

そのために、さらに2つUIViewControllers(viewController1とviewController2)を作成しました。そして、詳細ビューでは、次のようなポップアップのコードを記述しました。

  -(void)popupAgain
    {
        ViewController1 *viewController = [[ViewController1 alloc] initWithNibName:@"ViewController1" bundle:nil];

        viewController.modalPresentationStyle = UIModalPresentationFormSheet;
        [self presentModalViewController:viewController animated:YES];
        [viewController release];
    }

そして、私はそのポップアップでそれらの上にボタンを置きます、私は次のpopupAgain関数を呼び出してviewController2のようなものを取得します

 -(IBAction)next:(id)sender
    {
        [self popupAgain];
    }

 -(void)popupAgain
    {
        ViewController2 *viewController_new = [[ViewController2 alloc] initWithNibName:@"ViewController2" bundle:nil];

        viewController_new.modalPresentationStyle = UIModalPresentationFormSheet;
        [self presentModalViewController:viewController animated:YES];
        [viewController_new release];
    }

問題は、次のボタンをクリックすると、最初のポップアップを閉じて2番目のポップアップを表示する必要があることです。しかし、コードを書いていても最初のポップアップを閉じることはできません[self dissmissModalViewControllerAnimated:YES]; 次のようなボタンのアクションで、

-(IBAction)next:(id)sender
{
    [self dissmissModalViewControllerAnimated:YES]; 
    [self popupAgain];
}

誰かがこの問題を解決するのを手伝ってください。または、これに関して他に何かアイデアがありますか?私はこのテクノロジーに非常に慣れていません。よろしくお願いします。

4

1 に答える 1

0

ここを参照してください:http: //developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/ModalViewControllers/ModalViewControllers.html#//apple_ref/doc/uid/TP40007457-CH111-SW1

提示されたViewControllerを閉じる

提示されたビューコントローラを却下するときが来たとき、好ましいアプローチは、提示されたビューコントローラにそれを却下させることである。言い換えると、可能な場合は常に、ViewControllerを提示したのと同じViewControllerがそれを却下する責任を負う必要があります。提示されたビューコントローラを却下する必要があることを提示するビューコントローラに通知するためのいくつかの手法がありますが、推奨される手法は委任です。詳細については、「委任を使用した他のコントローラーとの通信」を参照してください。</ p>

于 2012-12-31T18:42:42.537 に答える