UIViewControllerをマスタとして、UINavigationControllerを詳細コントローラ(実際のDetailsControllerをrootControllerとして含む)を持っています。iOS5 SplitViewControllerは、アプリケーションの起動時にランドスケープビューでBarButtonを表示したままにします。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
KRMasterViewController *masterViewController = [[[KRMasterViewController alloc] initWithNibName:@"KRMasterViewController" bundle:nil] autorelease];
UINavigationController *masterNavigationController = [[[UINavigationController alloc] initWithRootViewController:masterViewController] autorelease];
KRDetailViewController *detailViewController = [[[KRDetailViewController alloc] initWithNibName:@"KRDetailViewController" bundle:nil] autorelease];
UINavigationController *detailNavigationController = [[[UINavigationController alloc] initWithRootViewController:detailViewController] autorelease];
self.splitViewController = [[[UISplitViewController alloc] init] autorelease];
self.splitViewController.delegate = detailViewController;
self.splitViewController.viewControllers = [NSArray arrayWithObjects:masterNavigationController, detailNavigationController, nil];
[self.window addSubview:self.splitViewController.view];
LoginController *controller=[[LoginController alloc]
initWithNibName:@"LoginController" bundle:nil];
[self.splitViewController presentModalViewController:controller animated:false];
[self.window makeKeyAndVisible];
return YES;
}
あなたのよう:アプリの起動時にiOS5をで
、私は私の窓にsplitViewControllerのビューを追加するが、その後、私は、このようsplitViewControllerの上にloginControllerを提示(ランドスケープビューでデバイスを保持) detailsControllerは私のsplitViewControllerのdelegateです。 loginControllerが表示される前に、問題は、iOS4をしている、デリゲートメソッド:私はloginControllerを閉じたときに- (void)splitViewController:(UISplitViewController *)splitController willHideViewController:(UIViewController *)viewController withBarButtonItem:(UIBarButtonItem *)barButtonItem
forPopoverController:(UIPopoverController *)popoverController
は、その後、呼び出されたデリゲートメソッド:
- (void)splitViewController:(UISplitViewController *)splitController willShowViewController:(UIViewController *)viewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem
が呼び出されます。私は、iOSが本当に遅れているのを私は気づいていると思う。 iOS 5では、splitViewControllerに到達するまでに2番目のメソッドが呼び出されません。これは、barButtonItemが横長表示で表示されたままになっていることを意味します。面白いことに、もし私が肖像画に回転してから景観に戻ってくると、その後はメソッドが適切に呼び出されます。誰もこれまでにこれを経験した?どんな解決策ですか?