-2

次のコードを使用して、モーダル ビュー コントローラーを閉じています。

- (IBAction)done {
#ifdef __IPHONE_5_0
    if ([self respondsToSelector:@selector(presentingViewController)])
        [self.presentingViewController dismissModalViewControllerAnimated:YES];
    else
#endif
        [self.parentViewController dismissModalViewControllerAnimated:YES];
}

iOS 4.3 iPad を使用してシミュレーターを実行すると、正常にself.parentViewController動作します。ただし、iOS 6.0 iPad を使用してシミュレーターを実行すると、self.presentingViewController.

テストする実際のiPadを持っていません...何かアイデアはありますか?

編集:

以下は、モーダル ビュー コントローラーを作成するコードです。

NSArray* errors = [[NSArray alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Errors" ofType:@"plist"]];

UIViewController* vc;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    DocumentsViewController_iPad* docsVC = [[DocumentsViewController_iPad alloc] initWithNibName:@"DocumentsViewController-iPad" bundle:nil];
    docsVC.documents = errors;
    docsVC.errors = YES;
    docsVC.navTitle = @"Troubleshooting";
    vc = docsVC;
} else {
    DocumentsViewController* docsVC = [[DocumentsViewController alloc] initWithNibName:nil bundle:nil];
    docsVC.documents = errors;
    docsVC.errors = YES;
    docsVC.navTitle = @"Troubleshooting";
    vc = docsVC;
}

vc.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentModalViewController:vc animated:YES];
[vc release];
4

2 に答える 2

3

いくつかのこと:

  • はい、dismissViewControllerAnimated:completion:@rdelmarが言ったように使用する必要があります
  • 親ではなく、presentingViewControllerで呼び出す必要があります
  • 提示コントローラーへの移動をスキップして閉じることができselfます。必要に応じて、このメッセージが提示コントローラーに転送されます。
于 2013-02-05T23:49:24.817 に答える
1

DismissModalViewControllerAnimated: は廃止されました。代わりに、dismissViewControllerAnimated:completion: を使用してください。

于 2013-02-05T23:45:40.177 に答える