私は各項目にsplitviewcontrollerを持つタブバーを持っています。私はそのサイトhttps://github.com/grgcombs/IntelligentSplitViewControllerのサブクラスを使用していましたが、iOS 4ではうまくいきましたが、iOS 5では問題があります。ポートレートモードでアプリを起動してから、横向きに変更してタブバーの2番目の項目に移動し、もう一度ポートレートモードに変更してポップオーバーをクリックし、ポップオーバーを解除し、タブバーの最初の項目に移動し、ランドスケープに変更すると、マスタービューは消え、ポップオーバーは引き続き表示されます。どのようにそれを修正するために誰もが考えている?iOS 5のUITabBarControllerのUISplitViewController
2
A
答えて
1
私は同じ問題を解決するために取り組んでいます。 UISplitViewControllerサブクラスを使用する代わりに、回転メッセージを含むすべてのUISplitViewControllersに回転メッセージを正しく伝播するUITabBarControllerサブクラスを作成しました。これにより、UISplitViewControllerの正しい内部状態が維持されます。 SplitViewControllerが表示されていない場合、SplitViewControllerデリゲートメソッドの1つが呼び出されないので、詳細ビューコントローラでこれを処理します。私は徹底的にこれをテストしていませんiOS6.1
OSTabBarController.m
#import "OSTabBarController.h"
@implementation OSTabBarController
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{
[super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
for(UIViewController *targetController in self.viewControllers){
if(targetController != self.selectedViewController && [targetController isKindOfClass:[UISplitViewController class]]){
[targetController willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
}
}
}
-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation{
[super didRotateFromInterfaceOrientation:fromInterfaceOrientation];
for(UIViewController *targetController in self.viewControllers){
if(targetController != self.selectedViewController && [targetController isKindOfClass:[UISplitViewController class]]){
[targetController didRotateFromInterfaceOrientation:fromInterfaceOrientation];
}
}
}
@end
DetailViewController
@implementation OSDetailViewController
-(void)viewWillAppear:(BOOL)animated{
//the splitViewController:willHideViewController:withBarButtonItem:forPopoverController: may not have been called
if(!UIInterfaceOrientationIsPortrait(self.interfaceOrientation)){
self.navigationItem.leftBarButtonItem = nil;
}
}
#pragma mark - UISplitViewControllerDelegate Methods
- (void)splitViewController:(UISplitViewController *)splitController willHideViewController:(UIViewController *)viewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)popoverController
{
[self.navigationItem setLeftBarButtonItem:barButtonItem animated:YES];
}
- (void)splitViewController:(UISplitViewController *)splitController willShowViewController:(UIViewController *)viewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem
{
[self.navigationItem setLeftBarButtonItem:nil animated:YES];
}
@end
関連する問題
- 1. UISplitViewController IOS 5から戻る方法は?
- 2. UISplitViewControllerがios 5のビューデリゲートメソッドを呼び出さない
- 3. UITabBarControllerアプリケーションの別のUIViewControllerからUISplitViewControllerを呼び出します
- 4. スタートタブ - UITabBarControllerスウィフトiOS
- 5. iOS UITabBarController issue
- 6. UITabBarController子ビューコントローラリセット-Swift2 iOS
- 7. ios 7 bottomLayoutGuide with uitabbarcontroller
- 8. iOSストーリーボードUISplitViewControllerフルスクリーンに表示
- 9. 防止UISplitViewControllerマスタービュー(アプリのiOS 4.xが)
- 10. カスタムiOSのUITabBarController委任トリガのviewDidLoad
- 11. UITabBarController内のUISplitViewController - SplitViewナビゲーションバーグリッチ/バグまたは何か間違っていますか?
- 12. iOS SwiftでUISplitViewControllerを使用する3
- 13. IOS 5のUIStepper
- 14. iOS 5のfbconnect?
- 15. iOS 11の大きなタイトルのUISplitViewControllerが壊れたアニメーション
- 16. UIPopoverController iOS 5.1以降のUISplitViewControllerでのジェスチャー処理
- 17. UISplitViewController
- 18. iPhone 5シミュレータでUITabBarControllerが応答しない:4インチ網膜ディスプレイ
- 19. iOS7 UISplitViewControllerステータスバー
- 20. iOS 5 beta 4&5のUITableViewの問題
- 21. (ios 5)
- 22. 受信メモリ警告。レベル= 1 - 5つのタブを持つUITabBarControllerアプリケーション
- 23. UISplitViewController内のUIPopOverController
- 24. UINavigationController内のUISplitViewController
- 25. MacアプリケーションのUISplitViewController?
- 26. UISplitViewControllerの表示
- 27. iOS 5.1 UISplitviewcontrollerはRootViewControllerのpresentModalViewControllerを許可していません
- 28. のSQLiteのiOS 5+問題
- 29. チェンジカラータブバーのアイコンのiOS 5
- 30. iOS 5のUINavigationBarのカットオフタイトルラベル
を、このアプローチ - 私は、これはiOS5.0で動作確認されましたこれまでのところ問題を解決したようだ。 – Chiubaka
素晴らしい!数多くのプロダクションアプリでうまく動作しています。 –