2

小さな問題があります。
5 つの ViewCotrollers A、B、C、D、E を使用しています。A は RootViewcontroller です。A では、ボタンを 1 つ追加してアクションを指定します。ボタンをクリックすると、presentModalViewController呼び出された B ViewController が表示されます。その addsubView プロセス。したがって、すべてのビューで同じプロセスが彼らのものです。チェーンプロセスを意味します。
しかし、最後のビューでは、この presentmodalViewController を却下したいと考えています。そして、私はこのタイプのコードを試しました。

-(IBAction)Done:(id)sender
{
   [self dismissModalViewControllerAnimated:NO];
}

しかし、うまくいきません。適切なガイドをください..ありがとう..

4

3 に答える 3

2

次のような通知を使用してみてください。

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


- (void)receiveDismissNotification:(NSNotification *) note{
[self performSelectorOnMainThread:@selector(dismissSelf) withObject:nil waitUntilDone:NO];
}
于 2012-09-17T16:03:50.830 に答える
1

Eビューのボタンイベントで、これを書きます

-(IBAction)Done:(id)sender
{
    id mainViewController = [self.view.superview.superview nextResponder];
    [mainViewController dismissModalViewControllerAnimated:YES];
}

このコードはテストされていませんが、これを使用してみてください。動作することを願っています:-)

于 2012-07-02T12:06:11.417 に答える
0

同じ.xibファイルでAからEまでのすべてのビューを作成します....

次に、.h ファイルで次のように宣言します。

UIView *containerView;

および B から E までのすべてのビューの IBOutlets..

.m ファイル内:

あなたのAビューのボタンアクションで、これを行うことができます...

containerView= [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
[containerView addSubview:BView]; 
[self.view addSubview:containerView];

このコードは、BView を rootViewController に追加します。つまり、A...

残りのビューの IBAction で、このコードを記述してナビゲートできます。

[UIView transitionFromView:BviewController toView:CViewController duration:1.0 options:UIViewAnimationOptionTransitionCurlDown completion:nil];

等々...

rootViewController ie A に戻ります

[containerView removeFromSuperview];

E ビューの IBAction で。または、transitionFromView を使用してナビゲートすることもできます...

于 2012-07-02T12:59:34.007 に答える