1

ストーリーボードを使用してビュー コントローラーの階層を処理する方法を学習しています。私は2つのViewControllersを持っています.タイプcwViewControllerのルート(私が理解しているのは以下の「自己」です)とタイプWorkspaceViewControllerの2番目です。「プレゼンテーションの進行中にプレゼンテーションを試みました!」というメッセージが表示されます。このコードの結果として。

- (IBAction)nextView {
    WorkspaceViewController *workspace = [[WorkspaceViewController alloc] initWithNibName:nil bundle:nil];
    [self presentViewController:workspace animated:YES completion:NULL]; }

View Controllerを正しく表示する方法への答えは?適用できる最も近い答えですが、このシナリオには完全には適合しません。なぜなら、私は VC を行ったり来たりするのではなく、VC を提示するだけで、それを閉じてオリジナルを表示するからです。

次に、次のように、いくつかの回答が示唆しているように、2番目を提示する前に現在のものを却下しようとしました:

[self dismissViewControllerAnimated:NO completion:nil];
[self presentViewController:workspace animated:YES completion:NULL];

しかし、それだけで追加の警告が表示されます。

他の調査を行ったところ、ブロックを追加することで同様の問題が解決されることがわかりました

[self dismissViewControllerAnimated:YES...]

しかし、それはここでは役に立ちません。なぜなら、その却下メソッドを呼び出すポイントに到達する前に警告が発生するからです。ビューの順序と階層がどのように処理されることを意図しているかについてのさらなる知識は、大きな助けになります。どうもありがとう。

4

3 に答える 3

2
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

 // TODO: make this all threaded?
 // crop the image to the bounds provided
 img = [info objectForKey:UIImagePickerControllerOriginalImage];
 NSLog(@"orig image size: %@", [[NSValue valueWithCGSize:img.size] description]);

 // save the image, only if it's a newly taken image:
 if ([picker sourceType] == UIImagePickerControllerSourceTypeCamera) {
     UIImageWriteToSavedPhotosAlbum(img, nil, nil, nil);
 }

 // self.image_View.image = img;
 // self.image_View.contentMode = UIViewContentModeScaleAspectFit;

NSLog(@"Picker has returned");
[self dismissViewControllerAnimated:YES
                         completion:^{
                            ModalViewController *sampleView = [[ModalViewController alloc] init];
                            [self presentModalViewController:sampleView animated:YES];
                         }];
}
于 2014-05-15T07:25:43.267 に答える
0

試す

[self presentModalViewController:workspace animated:YES];
if (![[self modalViewController] isBeingPresented]) {
      [self dismissModalViewControllerAnimated:YES];
}
于 2013-04-28T05:06:58.847 に答える