1

複数のdetailViewControllerを備えたsplitViewControllerを備えたiPadがありますが、ユーザーがログインボタンをクリックしてLoginScreenに移動し、ログイン画面でサインインボタンをクリックすると、splitViewController全体をリロードし、最初の画面を表示するのではなく、最初の画面を表示する必要がありますログインボタンをクリックした画面が私のコードです

     - (void) loginPressed
    {
 LoginViewController *targetController = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
targetController.modalPresentationStyle = UIModalPresentationFullScreen;

    [self.splitViewController presentViewController:targetController animated:YES completion:nil];
}

}        

ログインViewControllerコードのサインインボタンは次のとおりです

                [[NSNotificationCenter defaultCenter] postNotificationName:@"reloadRoot" object:self];

    FirstDetailViewController*targetController=[[FirstDetailViewController alloc]init];

    [self.splitViewController pushViewController:targetController animated:YES] ;

アプリ デリゲートの通知コード。

  -(void)actionNotificationData:(NSNotification *)notification {



    jani=@"No";


   self.window.rootViewController=splitViewController;
   }

これが私の RootViewController です。これは tableView であり、セルをクリックして新しいビューに移動すると、splitView Conroller のコードです。

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


if (row == 0) {


    self.firstDetailViewController=[[[FirstDetailViewController alloc] init]autorelease];
    [viewControllerArray addObject:self.firstDetailViewController];
    self.appDelegate.splitViewController.delegate = self.firstDetailViewController;







  }

if (row == 1) {



    self.secondDetailViewController=[[[SecondDetailViewController alloc]init]autorelease];
    [viewControllerArray addObject:self.secondDetailViewController];
    self.appDelegate.splitViewController.delegate = self.secondDetailViewController;
}

if (row == 2) {
    self.myLearningViewController=[[[MyLearningViewController alloc]init]autorelease];
    [viewControllerArray addObject:self.myLearningViewController];
    self.appDelegate.splitViewController.delegate = self.myLearningViewController;
}


if (row == 3) {
    self.communityViewController=[[[CommunityViewController alloc]init]autorelease];
    [viewControllerArray addObject:self.communityViewController];
    self.appDelegate.splitViewController.delegate = self.communityViewController;
}


if (row == 4) {
    self.reportsViewController=[[[ReportsViewController alloc]init]autorelease];
    [viewControllerArray addObject:self.reportsViewController];
    self.appDelegate.splitViewController.delegate = self.reportsViewController;
}




if (row == 5) {


    self.walkInViewController=[[[WalkInViewController alloc]init]autorelease];

    [viewControllerArray addObject:self.walkInViewController];

    //self.appDelegate.splitViewController.delegate = self.secondDetailViewController;

    self.appDelegate.splitViewController.delegate = self.walkInViewController;


}

if (row == 6) {


    self.postDataViewController=[[[PostDataViewController alloc]init]autorelease];

    [viewControllerArray addObject:self.postDataViewController];


    self.appDelegate.splitViewController.delegate = self.postDataViewController;


}



[[self.appDelegate.splitViewController.viewControllers objectAtIndex:1] setViewControllers:viewControllerArray animated:NO];    


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


}
4

1 に答える 1