0

私はiPhone開発の初心者です。私は Xcode4.2 と iOS5 で作業しています。あるビューから別のビューへのナビゲーションに使用しました:これは正常に動作します..

-(IBAction)viewFullProfile:(id)sender
{
    OperatorFullProfile *operatorFullProfile = [[OperatorFullProfile alloc] initWithNibName:@"OperatorFullProfile" bundle:nil];    
    [self presentModalViewController:operatorFullProfile animated:YES];

}

しかし、OperatorFullProfile を却下しても、却下されませんでした。却下コードの場合:

-(IBAction)Cancel:(id)sender
{
  [self.parentViewController dismissModalViewControllerAnimated: YES];
 // [self.parentViewController.parentViewController dismissModalViewControllerAnimated:YES];
 // [self dismissViewControllerAnimated:YES completion:nil ];
}

私はその問題を解決しようとしています、助けてください。

4

4 に答える 4

1

ただ呼び出す:

[self dismissModalViewControllerAnimated: YES];

親ビューコントローラーを取得する必要はありません。

于 2012-05-14T14:34:40.363 に答える
0

キャンセルボタンメソッドのOperatorFullProfile.mファイルで...

-(IBAction)Cancel:(id)sender
{
  [self dismissModalViewControllerAnimated: YES];

}

そしてあなたの現在のこの見方は却下されます...:)

于 2012-05-14T14:38:40.080 に答える
0

書くだけ:

[自己却下ModalViewControllerAnimated: はい];

乾杯。

于 2012-05-23T07:52:18.457 に答える
0

モーダル ビュー コントローラーを表示するdismissModalViewControllerAnimated:から呼び出す必要があります。UIViewController

これを行う典型的な (そして適切に設計された) 方法は、デリゲートを使用することです。Doneモーダルコントローラーにボタンがあるとしましょう。@protocolモーダルビューコントローラーでa を宣言します。そのメソッドは、たとえば であり、そのプロトコルのインスタンスであるdidTapDoneButtona を持っています。@propertyそれを と呼びましょうdelegate

IBAction、呼び出します

-(IBAction)Cancel:(id)sender
{
    [self.delegate didTapDoneButton];
}

モーダル コントローラーを表示するビュー コントローラーにプロトコルを実装し、モーダル コントローラーを作成するときに、デリゲート プロパティを に設定しますself

-(IBAction)viewFullProfile:(id)sender
{
    OperatorFullProfile *operatorFullProfile = [[OperatorFullProfile alloc] initWithNibName:@"OperatorFullProfile" bundle:nil];    
    operatorFullProfile.delegate = self;
    [self presentModalViewController:operatorFullProfile animated:YES];

}

そのクラスで、ボタンが押されたときに呼び出されるプロトコルのメソッドを実装します。

-(void)didTapDoneButton
{
    [self dismissModalViewControllerAnimated: YES];
}

そうすれば、モーダル コントローラーを提示する責任を負うコントローラーは、それを却下する責任も負います。

于 2012-05-23T06:57:43.920 に答える