1

私は iPad アプリの SplitViewController にあまり詳しくありません。アプリで SplitViewController を使用しました。向きを縦から横に変更すると、Masterview が splitView から隠れます。この問題を解決するために私を助けてください。

参照用に私のソースを添付しました。

SplitViewController の作成:

self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] 境界]] autorelease]; // アプリケーション起動後のカスタマイズのポイントをオーバーライドします。

menuViewController = [[MainMenuViewController alloc] initWithNibName:@"MainMenuViewController" bundle:nil];
UINavigationController *masterNavigationController = [[UINavigationController alloc] initWithRootViewController:menuViewController] ;
masterNavigationController.navigationBar.barStyle = UIBarStyleBlack;

MainMenuDetailViewController *detailViewController = [[MainMenuDetailViewController alloc] initWithNibName:@"MainMenuDetailViewController" bundle:nil] ;
UINavigationController *detailNavigationController = [[UINavigationController alloc] initWithRootViewController:detailViewController] ;
detailNavigationController.navigationBar.barStyle = UIBarStyleBlack;


self.splitViewController = [[UISplitViewController alloc] init];
[self.splitViewController.view setBackgroundColor:[UIColor whiteColor]];
self.splitViewController.delegate = detailViewController;
self.splitViewController.viewControllers = [NSArray arrayWithObjects:masterNavigationController, detailNavigationController, nil];

詳細表示ページ:

プラグママーク -

pragma mark 分割ビューのサポート

  • (void)splitViewController: (UISplitViewController*)svc willHideViewController:(UIViewController )aViewController withBarButtonItem:(UIBarButtonItem )barButtonItem forPopoverController: (UIPopoverController*)pc {

    barButtonItem.title = NSLocalizedString(@"メニュー", @"メニュー"); [self.navigationItem setLeftBarButtonItem:barButtonItem アニメーション:YES]; self.masterPopoverController = pc; appDelegate.rootPopoverButtonItem = barButtonItem; appDelegate.masterPopoverController = pc; }

// 分割ビューでビューが再び表示されるときに呼び出され、ボタンとポップオーバー コントローラーが無効になります。- (void)splitViewController: (UISplitViewController*)svc willShowViewController:(UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem {

[self.navigationItem setLeftBarButtonItem:nil animated:YES];
self.masterPopoverController = nil;

}

MasterView ボタンタップ:

[appDelegate.splitViewController viewWillDisappear:YES];

[UIView  beginAnimations: @"Showinfo"context: nil];
[UIView setAnimationCurve: UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0.5];


NSMutableArray *viewControllerArray=[[NSMutableArray alloc] initWithArray:[[appDelegate.splitViewController.viewControllers objectAtIndex:1] viewControllers]];

[viewControllerArray removeLastObject];

if( viewMenu.hidden == YES)  // Main Menu
{
    if(btnMenu.tag == 1) // Service Report Form
    {
        if (!self.mainMenuDetailViewController) {
            self.mainMenuDetailViewController = [[MainMenuDetailViewController alloc] initWithNibName:@"MainMenuDetailViewController" bundle:nil];
        }
        [viewControllerArray addObject:self.mainMenuDetailViewController];
        appDelegate.splitViewController.delegate = self.mainMenuDetailViewController;

    }

    if(btnMenu.tag == 4) // Signout
    {
        [self.navigationItem setLeftBarButtonItem:nil];
        [appDelegate SignOut];
        btnSignOut.frame = CGRectMake(24,275,272,50);
    }
    else if(btnMenu.tag == 2) // Inquiries
    {
       if (!self.inquiryViewController) {
            self.inquiryViewController = [[InquiryViewController alloc] initWithNibName:@"InquiryViewController" bundle:nil] ;
        }


        [viewControllerArray addObject:self.inquiryViewController];
        appDelegate.splitViewController.delegate = self.inquiryViewController;
    }
    else if(btnMenu.tag == PageMasterSync)
    {

        if (!self.mastSyncViewController) {
            self.mastSyncViewController = [[MastSyncViewController alloc] initWithNibName:@"MastSyncViewController" bundle:nil] ;
        }
        appDelegate.splitViewController.delegate = self.mastSyncViewController;
        [viewControllerArray addObject:self.mastSyncViewController];
    }
    else if(btnMenu.tag == PageServiceReport)
    {
        if(!self.srListViewController)
       self.srListViewController  = [[SRListViewController alloc] initWithNibName:@"SRListViewController" bundle:nil];

        appDelegate.splitViewController.delegate = srListViewController;
        [viewControllerArray addObject:self.srListViewController];

    }


}


}


[[appDelegate.splitViewController.viewControllers objectAtIndex:1] setViewControllers:viewControllerArray animated:NO]; 
if(btnMenu.tag == PageReview &&  !viewMenu.hidden)
   [self.reviewViewController loadServiceReport];

[appDelegate.splitViewController viewWillAppear:YES];
[viewControllerArray release];

[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:NO];
[UIView commitAnimations];

センティルに関してここに画像の説明を入力

4

0 に答える 0