0

.xib ファイルから作成したビュー コントローラーをユーザーに表示するストーリーボードを使用する iOS アプリケーションがあります。このビュー コントローラーはユーザー入力を受け入れますが、それを閉じてメイン アプリケーションに戻る必要があります。ビュー コントローラーを表示できます。ビュー コントローラーには、ビュー コントローラーを閉じるメソッドを呼び出すボタンもあります。私の問題は、ユーザーがボタンを押してメイン アプリケーションに戻ると、画面全体が真っ暗になることです。ディスプレイから自分自身を削除しようとしている .xib ビュー コントローラーのボタンのコードを次に示します。

- (IBAction)myButtonAction:(id)sender {

    [self.view removeFromSuperview];

}

最初に .xib ビュー コントローラーを呼び出すメイン アプリケーションのビュー コントローラーのコードを次に示します。

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

    _nextView = [[NextLandscapeViewController alloc] initWithNibName:@"NextLandscapeViewController" bundle:nil];
    [_nextView setDelegate:(id)self];
    NextNavigationController *navigationController = [[NextNavigationController alloc] initWithRootViewController:_nextView];
    [self presentViewController:navigationController animated:YES completion:nil];

}

NextNavigationController は、ポートレート モードではなくランドスケープ モードで _nextView をロードする目的で行う UINavigationController のサブクラスです。この部分は正常に動作しています。私の懸念は、ユーザーが作業を終了した後にこのviewControllerを閉じて、メインアプリケーションで呼び出し元のView Controllerに戻ることです。

画面が黒いのには何か理由がありますか? 誰が私が間違っているのか、この問題を解決するにはどうすればよいですか?

回答者全員に事前に感謝します。

4

1 に答える 1

2

removeFromSuperview を使用しないでください。pop を使用してプッシュを元に戻すように、dismissViewController を使用して presentViewController を元に戻します。黒い画面が表示される理由は、View Controller を表示すると、表示中の View Controller のビューがウィンドウの階層から削除されるためです。そのため、スーパービューからビューを削除すると、その下にはウィンドウしかありません。

于 2013-08-26T05:08:03.933 に答える