0

2 つのビュー コントローラーを次々と閉じようとしています。最初のビュー コントローラーではアップロード機能を保持しており、完了すると現在のビュー コントローラーは閉じられます。

アップロード中の ViewController が閉じられた後、前の ViewController に戻ります。その「previousViewController」も却下したいと思います。

「uploadViewController」が閉じられた後、「PreviousViewController」でメソッドを呼び出します

これが私がそれをやろうとしている方法です:

UploadViewController で:

[self dismissViewControllerAnimated:YES completion:^{

            [previousView dismissME];
        }];

そして今、「PreviousViewController」に来ると

そのdismissME方法は次のとおりです。

-(void)dismissME {

    if (![[self presentingViewController] isBeingDismissed]) {
        NSLog(@"Dismiss ME");
        [self dismissViewControllerAnimated:YES completion:NULL];
    }
}

「Dismiss ME」ログが表示されますが、viewController は閉じられていません。

何か案は .. ?これを達成する方法..?

4

6 に答える 6

5

このコードは、前の 2 つのビュー コントローラーを閉じるのに役立ちます。

[[[self presentingViewController] presentingViewController] dismissModalViewControllerAnimated:YES];
于 2013-05-14T06:10:25.483 に答える
0

これを試して :

   -(void)myDismiss {
       [self dismissViewControllerAnimated:YES completion:nil];
   }


   -(void)dismissME {
       if (![[self presentingViewController] isBeingDismissed]) {
           NSLog(@"Dismiss ME");
           [NSTimer scheduledTimerWithTimeInterval:0.8 target:self selector:@selector(myDismiss) userInfo:nil repeats:NO];
       }
   }

PreviousViewController の viewDidAppear メソッドで編集してみる

    -(void)viewDidAppear:(BOOL)animated
   {
       [super viewDidAppear:animated];
       [NSTimer scheduledTimerWithTimeInterval:0.8 target:self selector:@selector(myDismiss) userInfo:nil repeats:NO];
   }

機能しない場合は、scheduledTimerWithTimeInterval を増やします。それが機能する場合は、scheduledTimerWithTimeInterval を 0.7,0.6 に減らします...

于 2013-05-14T06:07:17.867 に答える
0

あなたが使用することができます:

[self.parentViewController.parentViewController dismissModalViewControllerAnimated:YES];
于 2013-05-14T06:09:17.380 に答える