現在、iPad で動作するようにユニバーサル バイナリに変換している iPhone アプリケーションがあります。レイアウトに関して必要なすべてを正常に実装したため、アプリで完全な横向き機能がサポートされるようになりました (以前は主に縦向きモードを使用してコンテンツを表示していました)。
しかし、奇妙な問題が 1 つあります。これはランドスケープ モードでのみ発生します。View Controller をスタックにプッシュすると、前の View Controller に戻るには戻るボタンを 2 回タップする必要があります。最初のタップでは空白のビューが表示されますが、左側の戻るナビゲーション ボタンに同じ名前が表示されているため、2 回目のタップではコントローラーが元のビューに戻ります。
テストする iPad がないので、シミュレーターに頼っています。この問題は iPhone では発生せず、ポートレート モードに戻しても発生しません。
私のアプリは、VC 用にロードされたナビゲーション コントローラーを備えた tabbarcontroller で構成されています。
//application delegate
- (void)applicationDidFinishLaunching:(UIApplication *)application
//....
WebHelpViewController *vc8 = [[WebHelpViewController alloc] init];
UINavigationController *nv8 = [[UINavigationController alloc] initWithRootViewController:vc8];
[self.tabBarController setViewControllers:[NSArray arrayWithObjects:nv1,nv2,nv3,nv4,nv5,nv6,nv7,nv8,nil]];
ランドスケープ機能を実装するために、UITabBarController は必要に応じて自動回転するようにオーバーライドされます。
//CustomTabBarController.m
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return [[(UINavigationController *)self.selectedViewController topViewController] shouldAutorotateToInterfaceOrientation:interfaceOrientation];
}
... 正常に動作します。このメソッドを使用して新しいビューに移動します
SomeViewController *vc = [[SomeViewController alloc] init];
[self.navigationController pushViewController:vc animated:YES];
[vc release];
これは単なるシミュレーション エラーですか? この問題を解決するにはどうすればよいですか?