0

プロジェクトをユニバーサル アプリケーションに変更し、Xcode の更新バージョンに切り替えた後に発生した問題があります。

現在、私のアプリケーションには、ボタンのあるコントローラーを備えたナビゲーション バーがあります。ユーザーがボタンをクリックすると、ボタンは UIPopoverController をポップアップ表示します。ここではすべてが順調でした。今、私は UIPopoverController 内のリストを操作しようとしましたが、リストにはまったく反応がありません。さらに、ポップオーバー コントローラーの外側をタップしてポップオーバー コントローラーを閉じようとすると、ポップアップはまったく閉じず、ポップオーバー コントローラーの背後にあるコントロールを操作することもできます。

Xcode を最新の IOS に更新する前は問題なく動作していました。私が変更したコード内では、xib ファイルにウィンドウ ビューを持たせ、アプリ デリゲート ファイル内でその xib ファイルを初期化しました。

これを以下のコードに示します。

TViewController* controller = [[TController alloc] initWithNibName:@"MainViewController_IPad" bundle:NULL];
[controller.navigationController setNavigationBarHidden:TRUE animated:TRUE];
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
[self.window setRootViewController:controller];
[self.window makeKeyAndVisible];

//((TopicShowViewController*)self.window.rootViewController).navigationController.navigationBarHidden = true;
self.navigationController = ((TopicShowViewController*)self.window.rootViewController).navigationController;
self.navigationController.navigationBarHidden = true;
[controller release];

上記のコードでは、window オブジェクトを作成する必要がありますが、TViewController 自体には既に window オブジェクトがあります。xib ファイルのウィンドウ オブジェクトまたは上記のコードからウィンドウ オブジェクトを明示的に初期化せずにこれを実行すると、TViewController は期待どおりに表示されません。

ここで何が問題なのかわかりません...説明が長すぎて理解できないかもしれませんが、助けてください。

4

1 に答える 1

1

ユニバーサル アプリケーションは、iPhone と iPad の両方で動作するように設計されたアプリケーションです。ただし、UIPopoverController は iPhone ではサポートされていません。iPhone でポップオーバーを開こうとすると、アプリは例外をスローします。

于 2012-10-23T00:01:52.560 に答える